Я не утверждаю, что код не работает. Да, он работает. Но он может работать лучше. Пример в 3-м посте.
Из комментарие к srand() на странице
http://ru.php.net/manual/en/function.srand.phpsrand() is pretty tricky to get right. You should never seed a random number generator more than once per php process, if you do, your randomness is limited to the source of your seed.
The microtime function's micro-seconds portion has a very finite resolution, that is why the make_seed function was added to the document. You should never get the same seed twice.
In the later versions, PHP will seed the random generator prior to performing a rand() if srand() was not previously called.