The iTunes “Shuffle” or Randomize setting does a great job of randomizing. Which is exactly the problem.
<p>Nobody wants a random distribution of music in iTunes except math geeks on Slashdot who aren’t actually listening to music.</p> <p>People want variety. People want different artists, genres, song lengths, whatever, even if it has to be enforced in a non-random fashion. Some might call this elimination play. The algorithms aren’t all that hard, though they might take some memory. RAM is cheap.</p> <p>Some number of years ago, somebody first implemented a ‘Shuffle’ button as a call to rand() as a quick hack until he got back to it next week, and since then everybody has forgotten the entire point of what they were doing in the first place and focused on defending the statistical purity of their PRNG. </p> <p>We get it, there are Birthday Paradoxes and there’s a real chance in a truly random selection that the same song will be played twice in a row. But that should never happen in a Shuffle function meant for a human to use. Most people don’t know what a PRNG is, how they work, what the statistics are, or even if they do, care. Long live the Variety button.