Der Einstieg
Lesen Sie, was ein Zufallszahlengenerator ist: Hardware-Zufallszahlengeneratoren, Pseudozufallszahlengeneratoren und kryptografisch sichere Generatoren, warum sich Zahlen wiederholen und was der Browser zu bieten hat. Brauchen Sie Zahlen statt einer Erklärung, zieht der Zufallszahlengenerator sie in Ihrem Browser in jedem Bereich, mit oder ohne Wiederholungen.
Wo Generatoren unbemerkt versagen
Eine starke Zufallsquelle ist nur die halbe Arbeit. Die andere Hälfte besteht darin, ihre Rohwerte auf Ihren Bereich abzubilden, und genau daran scheitern viele selbstgebaute Generatoren. Den Rest der Division durch die Größe des Bereichs zu nehmen, ist der naheliegende Ansatz, und er ist unmerklich verzerrt: Teilt die Größe des Bereichs den Wertebereich der Quelle nicht gleichmäßig, erscheinen die niedrigsten Zahlen des Bereichs etwas häufiger als die übrigen. Dieser Fehler heißt Modulo-Verzerrung (Modulo Bias). Eine Lösung ist das Verwerfungsverfahren (Rejection Sampling): Die Werte im ungleichmäßigen Rest werden verworfen und neu gezogen. Unser Generator tut das, sodass jede Zahl in Ihrem Bereich bei jeder Ziehung dieselbe Chance hat.
Dieselbe Überlegung schließt die Abkürzungen aus, zu denen man zuerst greift. Math.random() gibt keine Garantie für kryptografische Sicherheit, und Tabellenfunktionen wie RAND() und RANDBETWEEN() gehören zur selben Klasse: gut genug, um grob zu mischen, ungeeignet für alles, was jemand anfechten könnte.
Zahlen, Listen und Würfel
Ein Zufallszahlengenerator liefert Zahlen aus einem Bereich, den Sie festlegen. Ein Zufallsgenerator für Listen arbeitet mit einer Liste, die Sie einfügen – Namen, Einträge, Optionen –, sodass Sie Zahlen nie von Hand den Zeilen zuordnen müssen. Für Brettspiele würfelt Würfel online und addiert die Summen, und für die Wahl zwischen zwei Möglichkeiten genügt der Münzwurf. Soll Zufall etwas schützen statt etwas entscheiden, nehmen Sie den Generator für sichere Passwörter. Alle greifen in Ihrem Browser auf dieselbe kryptografisch sichere Quelle zurück.