Tach.
Ok, shuffle basiert nur auf einer naiven Nutzung der Funktion rand, wie aus den Kommentaren zu shuffle hervorgeht.
Was auch immer Du in diesem Fall unter "naiv" verstehst ... Die zuständige Funktion array_data_shuffle in ext/standard/array.c implementiert das, was Wikipedia als die Durstenfeld-Version des Fisher-Yates shuffles bezeichnet. Und ja, sie greift dabei ebenso wie rand in PHP auf die Funktion php_rand der PHP-API zurück.
Wenig überraschend ist dann, dass rand das gleiche Problem hat. Es liefert für eine Weile (wenige Minuten) einen konstanten Wert, der dann wechselt. Und laut Handbuch muss rand ebenso seit PHP 4.2 nicht mehr initialisiert werden.
Auch hier die Frage: Wie sieht der Code aus, mit dem Du das getestet hast?
--
Always remember that you are unique. Just like everybody else.
Always remember that you are unique. Just like everybody else.