i resent you calling my library dirty
a full random by rights would weight towards artists with more tracks, where yours would only weigh towards artists with more track 1's.. but yeah, that'd work for you. i, on the other hand, only keep songs i like, though i usually start out with proper full CDs. unfortunately some artists never make a good first song on an album hehe
as far as memory usage, mine only balloons to 37mb of RAM and 62 VM, so it's not such an issue with me. obviously, library size must be an important factor. i've been trying to figure out another way to make it fast, but nothing occurred to me. the scripting dictionary made the track to track operation A LOT smoother and speedy, but the hangtime on load does leave a bit to be desired. at least that hang doesn't happen every time you skip ahead by more than 4 tracks like it used to.. AND the memory ballooning only occurs on start-up and not every time the track changes.
neFAST have you tried anything Marquis mentioned above about avoiding repeats, or made any more progress with your rate weighting scheme? i haven't had the time to play around with any of it yet.
edit: also, i'm happy to report that after playing for 30 minutes or so, the 37mb RAM dropped to like 6mb RAM, and the 62 has only increased to around 65 so maybe it's not so bad since it yields it back up later.