Skip to main content
🟢 Beginner

Zufallszahlengenerator

Generiere Zufallszahlen in einem Bereich. Perfekt für Spiele, Entscheidungen und Statistik. Kostenloser Online-Rechner für sofortige, genaue Ergebnisse.

Was ist ein Zufallszahlengenerator?

Zufallszahlengenerator (RNG) ist ein Werkzeug oder ein Algorithmus, der Zahlen ohne erkennbares Muster erzeugt — jede Ausgabe ist statistisch unabhängig von vorherigen Ausgaben, mit jeder Zahl in der Bereich gleich wahrscheinlich erscheint. Zufallszahlen sind grundlegend für Statistik, Gaming, Kryptographie, wissenschaftliche Simulation und Computerprogrammierung.

Wahre Zufälligkeit kommt aus physikalischen Phänomenen, die unvorhersehbar sind: radioaktive Zerfälle, atmosphärische Rauschen, thermisches Rauschen in elektronischen Schaltkreisen oder Quantentunnelungseffekte. Hardware-RNGs messen diese Phänomene, um echte Zufallsbitströme zu erzeugen. Dienste wie random.org sammeln atmosphärisches Rauschen aus Radioreceivern, um wahre Zufallszahlen bereitzustellen.

Computer-erzeugte Zufallszahlen sind technisch pseudorandom — sie sind deterministische Sequenzen, die zufällig erscheinen, aber vollständig durch einen Initialwert namens Seed bestimmt sind. Gegeben der gleichen Seed erzeugt ein pseudorandomer Zufallszahlengenerator (PRNG) die genaue gleiche Sequenz. Das ist tatsächlich nützlich für die Reproduzierbarkeit in wissenschaftlichen Simulationen: Setze den Seed, registriere ihn und du kannst deine Ergebnisse später wiederherstellen.

Wie funktionieren Pseudorandom-Nummern-Generatoren?

Modern PRNGs verwenden mathematische Algorithmen, um Sequenzen mit ausgezeichneten statistischen Eigenschaften zu erzeugen. Der am weitesten verbreitete Algorithmus ist der Mersenne-Twister (MT19937), entwickelt von Matsumoto und Nishimura im Jahr 1997. Er hat einen Periode von 2^19937 − 1 (eine Zahl mit fast 6.000 Ziffern) vor der Wiederholung, besteht alle Standardtests für Zufälligkeit und ist der Standard-RNG in Python, PHP, Ruby, R und vielen anderen Sprachen.

Neuere Algorithmen umfassen xoshiro/xoroshiro (extrem schnell, kleiner Zustand) und PCG (Permutierte Kongruente Generator) (ausgezeichnete statistische Qualität mit kleinem Zustand). Für kryptographische Anwendungen sind diese Standard-PRNGs unzureichend — kryptographisch sichere PRNGs (CSPRNGs) sind erforderlich, weil Standard-PRNGs vorhersehbar sind, wenn ein Angreifer genug Ausgaben kennt.

Webbrowser bieten Zugriff auf eine CSPRNG über die crypto.getRandomValues()-API, die dieser Rechner für die Erzeugung von Zufallszahlen verwendet. Dies ist erheblich sicherer als Math.random(), der einen einfachen PRNG verwendet und nie für sicherheitsrelevante Anwendungen verwendet werden sollte.

AlgorithmusPeriodeGeschwindigkeitKryptographisch?Verwendet in
Math.random()ImplementierungsabhängigSehr schnellNeinBrowser JS (nicht-kryptografisch)
Mersenne-Twister2^19937 − 1Sehr schnellNeinPython, R, MATLAB
xoshiro256**2^256 − 1Sehr schnellNeinRust, .NET, Julia
PCG-642^128Sehr schnellNeinNumPy, viele Sprachen
ChaCha20Sehr schnellJaLinux /dev/urandom, TLS
FortunaMittelJamacOS, iOS, Windows

Umfangreiche Verwendung von Zufallszahlen

Spielen und Unterhaltung: Würfelwürfe, Kartenmischen, Prozedurale Levelgenerierung, Loot-Systeme, NPC-Verhaltenszufälligkeit. Die gesamte Erfahrung von Roguelike-Spielen (Nethack, Spelunky, Hades) hängt von der Qualität der Zufälligkeit ab, die fair und unvorhersehbar erscheint.

Lotterien und Raffles: Zufällige Auswahl für Preise, Gewinnspiele, Juryauswahl, Draftpicks und jede faire Zuweisung einer begrenzten Ressource unter Konkurrenten. Wahrhaft zufällige Auswahl garantiert keine Voreingenommenheit.

Wissenschaftliche Simulation (Monte-Carlo-Methode): Zufallszahlen treiben Monte-Carlo-Simulationen an, die wiederholte zufällige Stichproben verwenden, um komplexe mathematische Ergebnisse anzunähern. Anwendungen umfassen die Schätzung von π, die Bewertung von Finanzderivaten, die Modellierung von Kernreaktionen, Wettervorhersagen und Studien zu Arzneimittelinteraktionen.

Statistik und Forschung: Zufällige Stichproben für Umfragen, zufällige Zuweisung in klinischen Studien (randomisiert kontrollierte Studien), Erzeugung von Bootstrap-Stichproben für Konfidenzintervalle und Kreuzvalidierung in maschinellen Lernalgorithmen erfordern Zufallszahlen.

Kryptographie und Sicherheit: Schlüsselerzeugung für Verschlüsselung, Erzeugung von Sitzungstoken, CAPTCHA-Herausforderungen, einmalige Passwörter (OTP/2FA), Salzwerte für Passwort-Hashing und Nonces in kryptographischen Protokollen erfordern hohe Qualität der Zufälligkeit. Schwache Zufälligkeit in kryptographischen Anwendungen kann katastrophal sein — sie hat zu realen Sicherheitsverletzungen geführt.

Computerprogrammierung: Erzeugung von Testdaten, Lasttests, Fuzzing (Finden von Fehlern, indem man zufällige Eingaben in Software gibt), A/B-Test- Zuweisung, Shuffle-Algorithmen (wie Spottifys "Zufalls"-Funktion) und Simulationstests.

Gerechtigkeit und statistische Erwartungen

Eine faire Zufallszahlengenerator gibt jedem Wert im Bereich eine gleich wahrscheinliche Chance. Für einen Bereich 1–6 (wie bei einem Würfel), sollte jeder Zahl etwa 1/6 ≈ 16,67% der Zeit über viele Würfe auftreten. Aber über kurze Laufzeiten sind Abweichungen normal und erwartet – das sagt uns die Wahrscheinlichkeit eigentlich.

Die Gesetz der großen Zahlen besagt, dass sich die beobachteten Häufigkeiten mit zunehmender Anzahl von Versuchen an die theoretischen Wahrscheinlichkeiten anpassen. Würfelt man 12 Mal und sieht man {1,3,5,6,2,1,4,3,2,6,5,4} – nicht genau 2 von jeder Zahl. Würfelt man 60.000 Mal und sieht man sehr genau 10.000 von jeder Zahl. Diese Konvergenz ist durch das Gesetz garantiert, aber kurzfristige Muster sind nicht.

Die Fallstrick des Glücksspielers ist die falsche Annahme, dass vorherige Ergebnisse die zukünftigen beeinflussen in unabhängigen zufälligen Ereignissen. 5 Kopf in Folge machen nicht "Taler" "fällig". Jeder Wurf ist unabhängig; die Münze hat keine Erinnerung. Ebenso ist ein Zufallszahlengenerator, der gerade 7 produziert hat, nicht weniger wahrscheinlich 7 wieder zu produzieren bei der nächsten Anfrage.

BereichWahrscheinlichkeit pro WertErwartete Häufigkeit (pro 1000)Typische Verwendung
1–250%500Münzwurf-Simulation
1–616,67%167Würfelwurf-Simulation
1–1010%100Decil-Wahl
1–521,92%19Kartenspiel
1–1001%10Prozentile/allgemeine Verwendung
1–1.000.0000,0001%0,001Lotterie-Ticket-Simulation

Zufallszahlenerzeugung in der Wissenschaft: Monte-Carlo-Methode

Monte-Carlo-Methode verwenden Zufallsauswahl, um Probleme zu lösen, die analytisch schwierig oder unmöglich sind. Benannt nach dem Casino von Monaco (aus offensichtlichen Gründen), wandeln diese Methoden schwierige deterministische Probleme in probabilistische um, die durch Simulation lösbar sind.

Schätzung von π: Zufällige Punkte in einem Einheitsquadrat (x,y jeweils gleichmäßig in [0,1]) generieren. Zählen, wie viele innerhalb des Einheitskreises (x² + y² ≤ 1) fallen. Der Quotient ist π/4. Mit 1 Million zufälligen Punkten kann man π auf etwa 3–4 Dezimalstellen schätzen. Dies ist nicht eine effiziente Methode, um π zu berechnen, aber es zeigt die Macht der Zufälligkeit wunderbar.

Finanzmodellierung: Black-Scholes-Optionsschätzungen und Value at Risk-Berechnungen simulieren Tausende möglicher zukünftiger Preisverläufe mit Zufallszahlen. Jede Simulation vertritt einen möglichen zukünftigen Zustand. Die Verteilung der Ergebnisse über Millionen von Simulationen gibt die Wahrscheinlichkeitsverteilung der Portfolioreturns an.

Arzneimittelentwicklung: Monte-Carlo-Simulationen modellieren die Wechselwirkungen von Arzneimolekülen, um vorherzusagen, wie wahrscheinlich ein Kandidatensubstanz an einem Zielprotein bindet. Dies reduziert die Anzahl der notwendigen Laborversuche, was Milliarden von Dollar in der Arzneimittelentwicklung einspart.

Erzeugung von eindeutigen Zufallszahlen (ohne Wiederholung)

Manchmal benötigt man Zufallszahlen, die nicht wiederholt werden – zum Beispiel beim Mischen eines Kartenspiels, der Zuweisung von Teilnehmern zu Gruppen oder der Auswahl von Lotteriegewinnern. Dies wird als ohne Wiederholung (im Gegensatz zu mit Wiederholung, bei der der gleiche Wert mehrmals auftreten kann) bezeichnet.

Die Standardalgorithmen für dies sind der Fisher-Yates-Shuffle (auch bekannt als Knuth-Shuffle). Für eine Liste von n Elementen: Beginne bei dem letzten Element, tausche es mit einem zufällig gewählten Element aus der gesamten Liste (einschließlich sich selbst), dann gehe zum zweitletzten Element, tausche es mit einem zufälligen Element aus den verbleibenden, und so weiter. Das Ergebnis ist eine gleichmäßig zufällige Permutation in O(n) Zeit.

Um k eindeutige zufällige Zahlen aus einem Bereich [min, max] zu erzeugen: Erstelle eine Liste aller Werte im Bereich, wende Fisher-Yates an, nimm die ersten k Elemente. Dies stellt sicher, dass jede Kombination von k Werten gleich wahrscheinlich ist – eine wahre gleichmäßige Stichprobe ohne Wiederholung.

Zufällige Zahlen in der Alltagsentscheidung

Zufallszahlengeneratoren sind überraschend nützlich für praktische Alltagsentscheidungen:

Binden von Entscheidungen: Wenn zwei gleich gute Optionen existieren, kann eine zufällige Zahl die Entscheidung ohne Überdenken treffen. Forschungen deuten darauf hin, dass Menschen, wenn sie sich zu lange über wirklich gleichwertige Entscheidungen Gedanken machen, Vorurteile einführen, die sie weniger glücklich mit dem Ergebnis machen als wenn sie zufällig gewählt hätten.

Zeitplanung und Planung: Zufällige Rotationsschemata gewährleisten Fairness im Laufe der Zeit. Wer wählt in einem Fantasy-Draft zuerst, wer erhält die bevorzugte Schicht, welches Thema wird in einer Besprechung zuerst besprochen – zufällige Zuweisung eliminiert Voreingenommenheit und Wahrnehmungen von Ungerechtigkeit.

Lernen und Übung: Schüler, die Flashcards verwenden, profitieren von zufälliger Anordnung – sie verhindern "Kontextklugheit" (wissen Sie die Antwort auf Karte 15, weil Sie gerade Karte 14 beantwortet haben). Zufällige Interleaving von Übungsproblemen ist eine bewährte Technik (interleaved practice), die die langfristige Aufbewahrung im Vergleich zu blockiertem Üben stärkt.

Kreative Inspiration: Schriftsteller, Künstler und Musiker verwenden zufällige Wortgeneratoren, Prompt-Generatoren und zufällige Einschränkungstools, um kreative Blockaden zu überwinden. Zufällig eingesetzte Einschränkungen erzwingen oft unerwartete und interessante kreative Lösungen.

Häufig gestellte Fragen

Wird dieser Generator wirklich zufällig?

Er verwendet die crypto.getRandomValues()-API Ihres Browsers, die ein kryptografisch sicheres Pseudorandom-Generator (CSPRNG) ist. Für Spiele, Entscheidungen, Statistiken und Lotterien ist dies ununterscheidbar von echter Zufälligkeit. Für absolute echte Zufälligkeit (aus physikalischen Phänomenen) verwenden Sie Hardware-RNGs oder Dienste wie random.org.

Kann ich zufällige Zahlen ohne Wiederholungen generieren?

Ja — dies wird als Zufallsauswahl ohne Ersetzung bezeichnet. Der Calculator verwendet das Fisher-Yates-Shuffle-Algorithmus: Generieren Sie alle Werte im Bereich, mischen Sie sie zufällig, geben Sie die ersten N zurück. Dies garantiert, dass jeder Wert höchstens einmal erscheint und jede Kombination gleich wahrscheinlich ist.

Was ist die Wahrscheinlichkeit, dass man das gleiche Zahl zweimal erhält?

Bei Ersetzung (Standardmodus) beträgt die Wahrscheinlichkeit, dass man bei zwei aufeinanderfolgenden Ziehungen die gleiche Zahl erhält, 1/N. Bei einem Bereich von 1–100: 1% pro Paar. Bei vielen Ziehungen sind Wiederholungen erwartet und normal. Bei "keinen Wiederholungen" ist eine aufeinanderfolgende Duplikat unmöglich.

Kann ich diese für Lotterien verwenden?

Absolut. Stellen Sie den Bereich auf Ihren Lotterie ein (z. B. 1–49) und aktivieren Sie "keine Wiederholungen", um eindeutige Zahlen zu wählen. Jede Kombination ist gleich wahrscheinlich — keine Zahl oder Kombination ist wahrscheinlicher oder unwahrscheinlicher zu gewinnen. Die Lotterie selbst ist zufällig, daher ist jede Auswahlmethode gleich gültig.

Was ist ein Seed in der Zufallszahlengenerierung?

Ein Seed ist der Startwert für einen Pseudorandom-Generator. Der gleiche Seed produziert immer die gleiche Sequenz. Dies ist nützlich für wiederholbare Simulationen — setzen Sie den Seed, führen Sie Ihre Simulation durch, notieren Sie den Seed und Sie können die gleiche zufällige Sequenz später für die Verifizierung oder Debugging wiederherstellen.

Wie wähle ich eine zufällige Position aus einer Liste?

Nummerieren Sie Ihre Elemente 1 bis N, dann generieren Sie eine zufällige Ganzzahl von 1 bis N. Das entsprechende Element ist Ihre zufällige Auswahl. Zum Beispiel, um zufällig aus 7 Teammitgliedern auszuwählen, generieren Sie eine zufällige Ganzzahl von 1 bis 7. Jedes Mitglied hat eine gleich wahrscheinliche Chance von etwa 14,3%.

Wird Math.random() in JavaScript wirklich zufällig?

Nein. Math.random() ist ein einfacher PRNG mit keinen Sicherheitsgarantien. Er ist für Spiele und nicht-sensitiven Anwendungen geeignet, sollte aber nie für kryptografische Zwecke (Schlüsselgenerierung, Token, Passwörter) verwendet werden. Für sichere Anwendungen verwenden Sie immer crypto.getRandomValues() oder einen Serverseitigen CSPRNG.

Was ist der Unterschied zwischen einem PRNG und einem CSPRNG?

Ein PRNG (Pseudorandom-Number-Generator) ist deterministisch und schnell, aber vorhersehbar, wenn man genug über seinen Zustand weiß. Ein CSPRNG (kryptografisch sichere PRNG) fügt dem die Eigenschaft hinzu, dass die Ausgaben computergestützt von echter Zufälligkeit ununterscheidbar sind, auch wenn ein Angreifer einige Ausgaben beobachtet. CSPRNGs sind für Passwörter, Schlüssel und Token erforderlich.

Was ist eine Monte-Carlo-Simulation?

Eine Monte-Carlo-Simulation verwendet große Zahlen von zufälligen Proben, um komplexe Größen zu schätzen. Beispiel: Schätzen Sie π, indem Sie zufällige Punkte in einem Quadrat platzieren, das einen Kreis enthält — der Verhältnis der Punkte im Kreis zum Gesamtpunkt konvergiert zu π/4. Monte-Carlo-Methoden werden in der Finanzwirtschaft, Physik, Ingenieurwesen und Statistik verwendet.

Kann Zufallszahlengeneratoren voreingenommen sein?

Poor-quality-RNGs können Voreingenommenheit aufweisen — einige Werte erscheinen häufiger als andere, oder es gibt Korrelationen zwischen aufeinanderfolgenden Werten. Die Qualität wird durch statistische Tests (NIST-Test-Suite, TestU01 BigCrush) gemessen. Moderne Algorithmen wie Mersenne Twister, PCG und xoshiro passen alle Standardtests und sind für praktische Zwecke unbefangen.

Zufällige Zahlen in Spielen und Prozedurale Erzeugung

Video-Spiele basieren auf Zufälligkeit. Von der zufälligen Kartenverteilung in Minecrafts Weltkreation bis hin zum Shuffle von Feind-IA-Verhalten, hochwertige Zufälligkeit schafft wiederholbare, unvorhersehbare Erfahrungen. Prozedurale Inhaltsverteilung (PCG) verwendet zufällige Zahlen mit mathematischen Einschränkungen, um reichhaltigen Inhalt mit minimaler manueller Anstrengung zu erstellen — die 18 Quintillionen Planeten in No Man's Sky wurden alle procedural von zufälligen Samen generiert.

Roguelike-Spiele wie Nethack, Spelunky und Hades definieren das Genre durch Prozedurale Level-Generierung. Jeder Lauf generiert ein anderes Labyrinth, Feindplatzierung und Gegenstandeverteilung. Das Spiel säet diese Zufälligkeit so, dass Läufe fair erscheinen (die RNG entscheidet nicht zufällig, dass du sofort stirbst) während sie unvorhersehbar bleiben. Viele Roguelikes zeigen den Samen, damit Spieler einen identischen Lauf wiederholen oder interessante Samen mit anderen teilen können.

Tischspiele haben physische Zufälligkeit (Würfel, gemischte Karten, Spinner) seit Jahrhunderten verwendet. Digitale Äquivalente müssen diese Verteilungen genau emulieren. Ein Standardwürfelwurf verwendet eine uniforme Verteilung über {1,2,3,4,5,6}. Ein Ziehen aus einem gemischten Stapel verwendet eine zufällige Permutation. Einige Spiele verwenden Würfelbecken (würfeln mehrere Würfel, nehmen den höchsten) oder Würfel mit Vorteil/Nachteil — erfordern sorgfältige statistische Gestaltung, um die beabsichtigte Wahrscheinlichkeitsverteilung zu erreichen.

Erzeugung anderer Verteilungen aus uniformen Zufallszahlen

Die meisten Zufallszahlen-Generatoren (RNGs) erzeugen Zahlen uniform verteilt zwischen 0 und 1 (oder ganzen Zahlen in einem Bereich). Oft benötigen wir zufällige Zahlen, die andere Verteilungen folgen — normal, exponentiell, Poisson usw. Diese können aus uniformen Zufallszahlen mithilfe von Transformationsmethoden abgeleitet werden.

Die Box-Muller-Transform erzeugt normalverteilt zufällige Zahlen aus zwei uniform zufälligen Zahlen U₁ und U₂: Z₁ = √(−2ln(U₁)) × cos(2πU₂) und Z₂ = √(−2ln(U₁)) × sin(2πU₂). Beide Z₁ und Z₂ folgen der Standardnormalverteilung N(0,1). Skalieren Sie mit Z × σ + μ, um N(μ,σ²) zu erhalten.

Die Inverse Transformationsmethode verwendet die Inverse der kumulativen Verteilungsfunktion (CDF). Für eine exponentielle Verteilung mit Rate λ: X = −ln(1−U)/λ, wobei U uniform in [0,1] ist. Dies transformiert direkt eine uniforme Zufallsvariable in eine exponentiell verteiltene. Die Methode funktioniert für jede Verteilung mit einer analytisch invertierbaren CDF.

Statistische Tests für Zufälligkeit

Wie können wir überprüfen, ob ein Zufallszahlengenerator tatsächlich zufällig ist? Statistische Tests überprüfen, ob eine Folge von Zahlen Muster aufweist, die in einer tatsächlich zufälligen Folge unwahrscheinlich wären. Das NIST-Statistik-Test-Suite enthält 15 Tests, die zur Bewertung von RNGs für kryptographische Anwendungen verwendet werden. Schlüsseltests umfassen:

Frequency-Test (Monobit): Überprüft, ob 0er und 1er mit gleicher Häufigkeit in der binären Darstellung der generierten Zahlen auftreten. Ein voreingenommener Münzwurf, der 60% der Zeit Kopf zeigt, würde diesen Test nicht bestehen.

Runs-Test: Überprüft die Anzahl von aufeinanderfolgenden identischen Bits (Laufzahlen). Zu viele lange Laufzahlen der gleichen Bit zeigen ein nicht-zufälliges Muster an. Eine tatsächlich zufällige Folge hat eine vorhersehbare Verteilung der Laufzahlen.

Serienerfassung: Überprüft, ob Paare, Dreier oder Vierer von Werten mit gleicher Häufigkeit auftreten. Wenn der Generator die Folge 1,2,3,4,5,6,1,2,3,4,5,6... erzeugt, besteht er den Frequenztest, aber er schlägt den Serienerfassungstest – die Paare sind nicht-zufällig.

Statistische TestWas es erkennen sollNIST-Test-Suite?
Frequency (Monobit)Ungleichmäßige 0/1-HäufigkeitJa
Runs-TestZu viele/few aufeinanderfolgende identische WerteJa
AutokorrelationWerte korreliert mit vorherigen WertenJa
Chi-QuadratNicht-uniforme VerteilungJa (Frequenztest)
Geboortetag-SpacingZu regelmäßige Abstände zwischen WertenÜber TestU01
DiehardMehrfaches Muster-TestSeparate Suite

Das TestU01 "BigCrush"-Test-Suite gilt als strengster praktischer Test – es führt 106 Tests durch und lehnt viele Algorithmen ab, die kleinere Test-Suiten bestehen. Moderne Algorithmen wie PCG und xoshiro bestehen den BigCrush-Test; ältere Algorithmen wie der lineare Kongruenzgenerator, der in frühen C-Bibliotheken verwendet wurde, schlagen mehrere Tests und sollten nicht für Qualität-Anwendungen verwendet werden.

Verwendung dieses Zufallszahlengenerators

Setzen Sie die Mindest- und Maximalwerte, um Ihren Bereich zu definieren. Setzen Sie "wie viele" zum Erzeugen mehrerer Zahlen auf einmal. Aktivieren Sie die Option "keine Wiederholungen", um eine Liste eindeutiger Zahlen zu erzeugen (ohne Ersetzung) – ideal für Lotterie-Ziehungen, Kartenziehung oder Zuteilung von Teilnehmern ohne Wiederholung. Die generierte Folge verwendet die kryptografische Zufallszahl- API Ihres Browsers für hochwertige Ergebnisse, die für jede nicht-sicherheitsrelevante Anwendung geeignet sind. Für Lotterie-Ziehungen erzeugen Sie Zahlen gleich der erforderlichen Anzahl innerhalb Ihres Lotteriebereichs. Für Raffel-Ziehungen zuweisen Sie sequenzielle Zahlen den Einträgen und ziehen Sie die entsprechende Zahl. Die Ergebnisse werden frisch generiert, wenn Sie auf den Button klicken – vorherige Ergebnisse werden nicht gespeichert oder verfolgt.