srand() is just the random number generator seeding function.
What it means is that if you use
srand ((double) microtime() * 1000000);
shuffle($myarray);
You should get a pretty randomized array. Looking at the comments though, this didn't seem to be the case.
The important thing to realize about computer generated random numbers is that they are not really random.
If you make two identical arrays, and call srand(4); (or some other constant) in front of the shuffle for each of the arrays, you should (unless shuffle does weird things) get exactly the same shuffling results in both arrays.
The reason seeding with the microtime works is that since the microseconds are changing so quickly you are pretty certain to get a different seed each time. This would lead to a different sequence of random numbers (*), and thus a different sorted pattern.
(*) Well-written random number generators will loop through x numbers without ever repeating a number until the whole range of numbers has been exhausted. However, they can only produce one loop of numbers. The seed only determines where in the loop of numbers they start reading from. A 32-bit random number generator should be able to produce 2.1 billion (rounded) numbers before starting with the same sequence it began with.