suit: der programmierte Zufall

Beitrag lesen

Nochmal zusammenfassend:
a) das ist ein Doppelposting :)

b) Wenn du Zufallszahlen verwenden willst, die möglichst zufällig (aber nicht eindeutig) sind, ist mt_rand() unter php die beste Wahl.

Wenn es nicht Sicherheitsrelevant sein muss, kannst du auch irrationale Zahlen ohne Perioden verwenden. Die eulersche Zahl, Pi oder Wurzel 2 eigenen sich z.B. - die Zufallswerte sind hierzwar vorhersehbar - aber du kannst die Zahl einfach in ein Stellwertsystem deiner Wahl konvertieren und durchlaufen (wenn du z.B. Zahlen von 3 bis 15 brauchst, du eins zur Bbasis 13) - sprich bei jeden Request schiebst du den Zeiger um eins weiter.

c) Wenn du auf Gleichverteilung angewiesen bist, helfen dir herkömmliche Zufallszahlengeneratoren nicht weiter - das ist, wie dir schon gesagt wurde - nicht die Aufgabe solcher Generatoren. Nach dem Gesetz der großen Zahlen wirst du das zwar vermutlich erreichen, garantiert ist das aber nicht.

Du musst, wenn es Anforderung ist (z.B. wenn du zufällig Personen in gleich große Gruppen aufteilst - Auto Team Balance in Spielen ist z.B. ein gängiger Anwendungsfall dafür - oder aber Bannerrotationsscripte, bei denen jeder Banner ein entsprechendes Kontingent besitzt), über deine Zufallszahlen Buch führen. Sprich du musst die letzten Ergebnisse in einer Liste erfassen wenn alle Werte da waren, die Liste wegschmeissen und neu beginnen.

So wie ich das sehe ist es in deinem Fall aber weder sicherheitsrelevant noch ist Gleichverteilung essentiell wichtig.