Viele Zufallszahlengeneratoren, die auf älteren libc-Versionen basieren, haben seltsame oder doch zumindest unerwartete Verhaltensweisen und sind zudem recht langsam. Standardmäßig verwendet PHP den libc-Zufallszahlengenerator mit der Funktion rand(). Die Funktion mt_rand() kann jedoch als vollwertiger Ersatz verwendet werden. Sie verwendet einen Zufallszahlengenerator mit den bekannten Charakteristika der » Mersenne Twister, die Zufallszahlen viermal schneller generiert als der durchschnittliche libc-rand()-Aufruf.
Wenn die Funktion ohne Angabe von min und/oder max aufgerufen, gibt mt_rand() eine Pseudozufallszahl zwischen 0 und mt_getrandmax() zurück. Benötigen Sie zum Beispiel eine Zufallszahl zwischen 5 und 15 (inklusive), verwenden Sie mt_rand(5, 15).
Auf einer von Neumann Maschine ECHTE Zufallszahlen zu erzeugen ist nicht trivial.
"Echter" Zufall ist z.B. das Ticken eines Geigerzählers aufgrund von Höhenstrahlung, thermisches Rauschen einer Diode, der "Schnee" wenn man keinen TV Empfang hat.
Ausreichend "zufällig" für die meisten Anwendungen ist, einen endlichen Zufallsgenerator mit UserInteraktionen (z.B. Mausposition * n) zu verknüpfen. ABER! Echter Zufall ist das auch nicht!!!
"Echter" Zufall ist, wenn man sich gerade einen Kaffee eingeschenkt hat mit dessen Hilfe man "Thread-Nekromantie zum Zwecke des Klugscheissens" viel gelassener betrachten kann.