
PRNG
Ein PRNG (Pseudozufallszahlengenerator) ist ein Algorithmus, der aus einem einzigen Startwert eine lange Folge von Zahlen berechnet, die zufällig wirken, es aber nicht sind. PRNGs stecken in fast jeder Software, die Zufall braucht – von Computerspielen über Simulationen bis zu KI-Modellen.
Ein PRNG – kurz für Pseudozufallszahlengenerator – ist ein Algorithmus, also eine Rechenvorschrift, die Zahlen produziert, die wie Zufall aussehen. Das Wort „Pseudo“ ist dabei entscheidend: Die Zahlen sind nicht wirklich zufällig. Sie folgen einer festen mathematischen Regel. Wer den Startwert kennt, kann die gesamte Zahlenfolge exakt nachrechnen. Das klingt nach einem Nachteil – ist aber in vielen Anwendungen genau die Stärke des Verfahrens. Echter Zufall ist nämlich schwer zu erzeugen und noch schwerer zu wiederholen.
Warum Pseudozufall so nützlich ist
Viele Programme brauchen Zufallszahlen in riesigen Mengen und sehr schnell. Eine Computersimulation, die das Wetter oder den Aktienmarkt modelliert, kann Millionen Zufallswerte pro Sekunde benötigen. Echter physikalischer Zufall – etwa aus Rauschen in einem Mikrofon – lässt sich in dieser Menge gar nicht erzeugen. Ein PRNG liefert die Zahlen sofort, weil er nur rechnet.
Besonders wichtig ist die Reproduzierbarkeit. Beim Training eines KI-Modells entscheidet Zufall darüber, wie Daten gemischt oder Gewichte – also die internen Einstellwerte des Modells – anfangs gesetzt werden. Wenn ein Forscher seinen Versuch wiederholen will, muss er denselben Zufall verwenden. Mit einem PRNG geht das: Man speichert einfach den Startwert, den sogenannten Seed, und bekommt jedes Mal dieselbe Folge. Echter Zufall kann das nicht leisten.
Vom Seed zur Zahlenfolge
Jeder PRNG beginnt mit einem Seed – einer einzelnen Zahl, die als Ausgangspunkt dient. Darauf wendet er eine mathematische Funktion an und erzeugt eine neue Zahl. Diese neue Zahl wird zur Eingabe für den nächsten Schritt, und so weiter. Die entstehende Folge kann Milliarden von Zahlen lang sein, bevor sie sich wiederholt. Ein weit verbreiteter Algorithmus namens Mersenne Twister, der in Python und vielen anderen Programmiersprachen steckt, erzeugt eine Periode von 2¹⁹⁹³⁷ − 1 Zahlen – eine Zahl mit über 6.000 Stellen.
Qualität messen Informatiker daran, wie gut die Folge statistische Tests besteht: Kommen alle Zahlen gleichmäßig vor? Gibt es keine versteckten Muster? Ein schlechter PRNG produziert Folgen, die auf den ersten Blick zufällig wirken, aber beispielsweise immer abwechselnd gerade und ungerade Zahlen liefern. Für viele Anwendungen ist das fatal. Für kryptografische Zwecke – also etwa zur Verschlüsselung von Nachrichten – reicht ein normaler PRNG ohnehin nicht aus. Dort braucht man eigens gesicherte Varianten, sogenannte CSPRNGs.
Der Seed selbst muss irgendwo herkommen. Software nutzt dafür oft die aktuelle Uhrzeit, die Mausbewegung des Nutzers oder Rauschwerte aus dem Betriebssystem. Der Seed ist der einzige Ort, an dem echter Zufall ins System kommt – alles danach ist reine Berechnung.
PRNGs in KI, Spielen und Sicherheit
Im Alltag begegnet man PRNGs ständig, meist ohne es zu merken. In Computerspielen entscheiden sie, welche Gegenstände ein besiegter Gegner fallen lässt, wie Landschaften generiert werden oder wie sich KI-Gegner verhalten. Das Spiel Minecraft zum Beispiel baut seine gesamte Welt aus einem einzigen Seed – weshalb Spieler Welten teilen können, indem sie einfach eine Zahl weitergeben.
In der KI-Entwicklung taucht der Begriff in fast jedem Trainingsskript auf. Frameworks wie PyTorch oder TensorFlow erlauben es, den Seed manuell festzulegen, damit Experimente vergleichbar bleiben. In wissenschaftlichen Veröffentlichungen wird der genutzte Seed deshalb oft angegeben – ähnlich wie ein Chemiker die Temperatur seines Experiments notiert.
In der IT-Sicherheit markiert der PRNG dagegen eine Schwachstelle, wenn er falsch eingesetzt wird. 2008 wurde entdeckt, dass eine weit verbreitete Linux-Version den Seed für sichere Schlüssel auf nur wenige mögliche Werte beschränkte. Angreifer konnten alle Möglichkeiten durchprobieren und so eigentlich verschlüsselte Verbindungen knacken. Der Vorfall zeigt: Die Qualität des Zufalls entscheidet direkt über die Sicherheit eines Systems.