Wie funktioniert ein Zufalls­generator? Pseudo­zufall erklärt

Ein Computer ist eine Maschine, die Anweisungen ganz genau befolgt. Wie kann er dann eine Münze werfen, würfeln oder einen zufälligen Namen ziehen? Die kurze Antwort: Meistens erzeugt er gar keine echten Zufallszahlen. Er erzeugt Zahlen, die nur zufällig aussehen, und für die meisten Zwecke reicht das. Hier erfährst du, wie ein Zufallsgenerator funktioniert, wo er danebenliegen kann und wie die Tools auf dieser Seite ihre Ergebnisse auswählen.

Zwei Arten von Zufall

  • Echte Zufallszahlen stammen aus etwas Physikalischem, das niemand vorhersagen kann: elektrisches Rauschen in einem Schaltkreis, radioaktiver Zerfall, atmosphärisches Funkrauschen. Random.org zum Beispiel nutzt atmosphärisches Rauschen.
  • Pseudozufallszahlen stammen aus einer Formel. Man beginnt mit einer Zahl, dem sogenannten Seed (Startwert), schickt sie durch die Formel und erhält die nächste Zahl, dann die übernächste. Das Ergebnis sieht zufällig aus, aber derselbe Seed liefert immer dieselbe Folge.

Pseudozufall klingt nach Schummeln, doch genau das verwenden fast alle Spiele, Apps und Simulationen. Er ist schnell, und eine gute Formel besteht dieselben statistischen Tests wie echter Zufall.

Die erste Computermethode und ihr Haken

Um 1949 schlug der Mathematiker John von Neumann die Middle-Square-Methode (Quadratmittenmethode) vor: Man quadriert eine Zahl, nimmt die mittleren Ziffern und wiederholt das Ganze. Beginnt man mit 1234, ist das Quadrat 01522756, die nächste Zahl also 5227, danach folgen 3215, 3362, 3030 und so weiter.

Das sieht zufällig aus, landet aber in Schleifen. Startest du mit 2916, bekommst du 5030, 3009, 0540, 2916 und danach für immer dieselben vier Zahlen. Von Neumann wusste das. Er nutzte die Methode, weil sie schnell war, und prüfte die Ergebnisse auf Fehler. Berühmt ist sein Scherz, dass jeder, der Zufallszahlen mit Arithmetik zu erzeugen versucht, sich „im Zustand der Sünde“ befinde.

Vor den Computern: Bücher voller Zufallszahlen

Wissenschaftler brauchten Zufallszahlen so dringend, dass man sie in Büchern abdruckte. 1955 veröffentlichte die RAND Corporation A Million Random Digits with 100,000 Normal Deviates, erzeugt mit einem elektronischen Roulette-Rad. Forscher schlugen eine zufällige Seite auf und lasen die Ziffern ab. Lange davor nutzten Menschen Würfel, Münzen und Lose, wie du in unserem Artikel über das Würfelorakel der Antike nachlesen kannst.

So funktionieren moderne Generatoren

Heutige Pseudozufallsgeneratoren sind viel besser. Verbreitet sind unter anderem:

  • Mersenne Twister: der Standard in Python und vielen anderen Werkzeugen. Er wiederholt sich erst nach 219937 − 1 Zahlen, einer Zahl mit etwa 6.000 Stellen.
  • xorshift128+: der Generator hinter Math.random() in Chrome und anderen Browsern, die auf der V8-Engine aufbauen. Sehr schnell, gut für Spiele und Animationen.
  • Kryptografische Generatoren: die Art, die man für Passwörter und Verschlüsselungsschlüssel verwendet. Das Betriebssystem mischt unvorhersehbare physikalische Ereignisse hinein, etwa winzige Zeitunterschiede in der Hardware, sodass selbst jemand, der die Formel kennt, die nächste Zahl nicht vorhersagen kann.

Für ein Spiel reichen gewöhnliche Generatoren. Wer aber genug von ihren Ergebnissen sieht, kann den Rest manchmal ausrechnen. Wo es auf Fairness oder Sicherheit ankommt, ist die kryptografische Art die richtige Wahl.

Eine versteckte Falle: der Modulo-Bias

Selbst ein perfekter Generator kann unfaire Ergebnisse liefern, wenn man ihn unvorsichtig einsetzt. Angenommen, du hast ein zufälliges Byte, also eine Zahl von 0 bis 255, und willst damit würfeln. Am einfachsten teilst du durch 6 und nimmst den Rest. Aber 256 ist nicht glatt durch 6 teilbar, deshalb bekommen vier der Augenzahlen eine Chance mehr:

Augenzahl aus einem zufälligen Byte (0 bis 255), gebildet aus dem Rest beim Teilen durch 6
AugenzahlChance
1, 2, 3 oder 4je 43 von 256 (16,8 %)
5 oder 6je 42 von 256 (16,4 %)

Der Unterschied ist klein, aber über Tausende Würfe macht er sich bemerkbar. Die Lösung ist einfach: Landet die Zufallszahl im ungleichen Restbereich, wird sie verworfen und neu gezogen. Das nennt man Verwerfungsmethode (Rejection Sampling).

So wählen unsere Tools

Unser Münzwurf, unser Würfel-Tool, der Zufallszahlengenerator, der Namen-Zufallsgenerator und die anderen Tools mit demselben Code nutzen den kryptografischen Generator deines Browsers, der crypto.getRandomValues heißt. Außerdem verwenden sie die Verwerfungsmethode, damit jede Augenzahl, jede Zahl und jeder Name genau dieselbe Chance hat. Ältere Browser ohne diese Funktion greifen auf Math.random() zurück. Alles läuft in deinem eigenen Browser; auf unserem Server wird nichts entschieden.

Ist das denn wirklich Zufall?

Beim Münzwurf oder Würfeln ist ein guter Generator besser als das Original. Echte Münzen neigen ganz leicht zu der Seite, die anfangs oben liegt, wie unser Artikel zur Münzwurf-Wahrscheinlichkeit erklärt, und echte Würfel können leicht ungleichmäßig sein. Ein guter Generator hat keins der beiden Probleme.

Das größere Risiko ist der Mensch, der die Ergebnisse liest. Wir sehen Muster in Serien und erwarten, dass das „fehlende“ Ergebnis jetzt fällig ist. Das ist der Spielerfehlschluss, und er täuscht Menschen viel öfter als irgendein Computer. Wie schlecht Menschen selbst darin sind, sich Zufallszahlen auszudenken, liest du im Artikel „Kann der Mensch zufällig sein?“.

FAQ

Kann ein Computer echte Zufallszahlen erzeugen?

Mit einer Formel allein nicht. Formeln liefern Pseudozufallszahlen, die nur zufällig aussehen. Für echten Zufall messen Computer unvorhersehbare physikalische Ereignisse wie elektrisches Rauschen, und viele Geräte haben dafür eigene Hardware.

Was ist ein Seed bei einem Zufallsgenerator?

Der Startwert für die Formel. Derselbe Seed ergibt immer dieselbe Folge. Das ist praktisch zum Testen und bei Spielen, in denen man eine Welt oder ein Level über den Seed teilen kann.

Ist Math.random() wirklich zufällig?

Nein. Es ist ein schneller Pseudozufallsgenerator, gut genug für Spiele, aber nicht für Geheimes oder wenn es um Geld geht. Dafür bieten Browser crypto.getRandomValues.

Sind Münzwürfe und Würfel im Internet fair?

Wenn sie gut gemacht sind, ja. Unser Münzwurf und unser Würfel-Tool nutzen den kryptografischen Generator des Browsers mit der Verwerfungsmethode, sodass jedes Ergebnis genau dieselbe Chance hat.

Was ist der Modulo-Bias?

Eine kleine Unfairness, die entsteht, wenn man eine Zufallszahl über den Rest einer Division in einen kleineren Bereich zwängt und der Bereich nicht glatt aufgeht. Die Verwerfungsmethode beseitigt sie.

Das könnte dich auch interessieren

Probier diese Ja-oder-Nein-Tools aus

✈️