Why? The random number generator has to start with something. Because it's deterministic (give it the same seed it'll crank out the same sequence of random numbers), you need to give it a different seed each time you want to to generate a different sequence of random numbers.
(double)microtime()*1000000
is pretty random to start with, so pretty much guarantees you can't predict in advance which random number sequence will be generated (you'd have to know when the microtime() function was called to within the microsecond).