In diesem Artikel wird die Funktionsweise des Zufallsgenerators "Zufallsreihenfolge" erklärt. In den Generator können verschiedene Namen eingegeben werden, die dann in einer zufälligen Reihenfolge angeordnet werden. Hiermit kann man beispielsweise auslosen, welcher Punkt auf der TODO-Liste zuerst abgearbeitet wird oder welcher Spieler zuerst an der Reihe ist.
Inhaltsverzeichnis
Was ist Zufall?
Als Zufall bezeichnet man ein Ereignis, dessen Zustand kausal nicht eindeutig vorherbestimmbar ist. Das bedeutet, dass das Ergebnis eines Zufallsgenerators nicht vorhersehbar bzw. berechenbar sein darf. Dies widerspricht jedoch den Gesetzmäßigkeiten eines jeden Computers, was im Umkehrschluss bedeutet, dass ein Computer ohne weitere Peripherie keine absolut zufälligen Zahlen erzeugen kann. Man spricht in diesem Fall von Pseudo-Zufallszahlen. Generell lässt sich darüber philosophieren, ab wann man in der Praxis tatsächlich von echtem Zufall sprechen kann.
Wie wird die Zufallsreihenfolge generiert?
Theoretisch werden in diesem Generator mehrere unterschiedliche Methoden zur Erzeugung von Pseudo-Zufallswerten eingesetzt. Für die eigentliche Antwort wird dabei eine PHP-Funktion für kryptographisch sichere Pseudo-Zufallszahlen verwendet.
Zufallsgeneratoren für Binärstring
Die Funktionsweise dieser Zufallsgeneratoren wird hier erklärt.
Zufallsgenerator für zufällige Reihenfolge der Namen
Die zuvor genannten Methoden erzeugen einigermaßen gute Zufallszahlen, welche jedoch noch verbesserungsfähig sind. Die Erzeugung der zufälligen Reihenfolge erfolgt daher stets serverseitig durch die PHP-Funktion random_int(), welche kryptographisch sichere Pseudo-Zufallszahlen generiert:
// Das Array $namen enthält alle Namen // Auswählen der Namen for ($i = 1; $i <= $anzahl_alle_namen; $i++) { $index = random_int(0, count($namen) - 1); $zufallsreihenfolge[] = $namen[$index]; unset($namen[$index]); // Eintrag löschen $namen = array_values($namen); // Reset indexes }