When I'm at home for several hours at a time, I like to listen to (almost) my entire music collection on shuffle. Only problem is, that adds up to several days' worth of music -- there's no way I'll get through it all in one sitting. Since iTunes reshuffles every time you start a playlist (as opposed to pause/resuming it), eventually there gets to be this pattern of some music being favored by the randomizer and some that you never hear.
iTunes4 adds a few new Smart Playlist options, and with them you can get more randomization of a large collection. Create a smart playlist with "limit to N songs selected by least recently played," set it to shuffle, and start it playing. Because it keeps updating the playlist live, it'll never stop playing -- it'll randomize through the library and not play a single song twice until it's played everything else at least once. Because of this, I recommend setting < i>N to something like 25, so you you get just a screenful of what's coming up. If you want to see what just played, you'll have to make a second smart playlist that selects by most recently played.
[robg adds: Though I like the new options in the Smart Playlist, this hint doesn't work really well for me -- since there's no way to select "random" and "least recently played," I wind up with a playlist containing a bunch of tracks off the last one or two CDs I ripped to the collection. Any modifications to this hint that would yield a truly random collection of the least recently played songs?]
Mac OS X Hints
http://hints.macworld.com/article.php?story=20030511194458863