at least for Visual Basic the Rnd Fuction is not random when used it will select the same file each time when used for the first time.
only when you use the "Randomize" function prior to the code is it truely Random
Just to pick a couple of nits.... It's nearly impossible to generate a statistically random sequence with a computer alone. And absolutely impossible to generate a *truly* random sequence with a computer alone. This is a very important factor in pursuits such as, oh, cryptography.
VB's Randomize statement just sets a new seed (based on the computer's timer) for subsequent calls to the Rnd() function. Rnd() is an implementation of a linearly-recurring pseudo random number generator; in fact, it's linearlly congruential, which means it's very simple, and very difficult to use well. Or at least very difficult to get a statistically random sample from. In fact, VB's Rnd() has a high probability of having a period (non-repeating sequence) of only 2^15, which is just 32,768 digits.
Now, let a human into the equation and, if your method is significantly effective, you can get a statistically random sequence. For example, have the user wiggle the mouse around for a while to generate a seed for a good implementation of one of the more effective pseudo random number generators or asymptotically random number generators. Noise from an open microphone can provide a good seed too, if the conditions and the implentation are right.
Umm, yeah. Nevermind. Shuffling music is what we were talking about, right?