Zum Hauptinhalt springen
TirageAuSort.io
Den Zufall verstehen

So sind unsere Ziehungen fair

Wie unsere Online-Zufallsziehungen verlässlich gebaut sind: Math.random vs. crypto, überprüfbare Fairness und transparenter Code, einfach erklärt.

6 min Rédaction TirageAuSort.io

Unter der Haube von TirageAuSort.io: So sind unsere Ziehungen fair

Sie starten Münzwurf auf der Seite. Sie sehen die Münze sich drehen, landen, Kopf zeigen. Aber was ist wirklich zwischen Ihrem Klick und diesem Ergebnis passiert? Und vor allem: Warum sollten Sie uns für eine verlässliche Online-Zufallsziehung vertrauen?

Dieser Artikel öffnet die Haube. Nicht zur Show, nicht um das Thema in Fachjargon zu ertränken — im Gegenteil: damit Sie am Ende der Lektüre selbst überprüfen können, dass alles in Ordnung ist. Transparenz ist kein Slogan; sie ist eine konkrete Praxis. Hier ist, wie unsere Ziehungen aufgebaut sind, was ihre Fairness garantiert, und welche einfachen Schritte es Ihnen erlauben, das ohne Entwicklerin oder Entwickler zu sein zu prüfen.

Wie ein Computer „lost“

Ein erster Punkt der Ehrlichkeit: Ein Computer kann keinen reinen Zufall erzeugen. Er erzeugt berechneten Zufall. Der Unterschied ist subtil, aber er zählt.

Wenn Sie eine echte Münze werfen, hängt das Ergebnis von tausend unvorhersehbaren Faktoren ab: der Kraft Ihres Daumens, dem Luftwiderstand, der Unregelmäßigkeit der Münze, dem Boden, auf dem sie landet. Wenn Sie auf unseren Knopf klicken, führt der Computer stattdessen eine mathematische Berechnung aus, die so unregelmäßige Zifferfolgen erzeugen soll, dass sie in der Praxis nicht vorhergesagt werden können. Diese Berechnung trägt einen Namen: einen Pseudozufallszahlengenerator.

Konkret bringt Ihr Browser (Chrome, Firefox, Safari, Edge) zwei verschiedene Werkzeuge mit:

  • Math.random() — die Allzweckfunktion. Sie ist schnell, gleichmäßig verteilt und für die meisten Anwendungsfälle völlig ausreichend: eine Münze werfen, einen Würfel würfeln, einen Namen aus einer Liste wählen. Moderne Browser implementieren sie mit einem Algorithmus namens xorshift128+, der Folgen erzeugt, die mit bloßem Auge nicht vom echten Zufall zu unterscheiden sind.
  • crypto.getRandomValues() — die kryptografische Variante. Langsamer, aber selbst für eine Angreiferin, die Tausende vorheriger Ergebnisse beobachtet, unvorhersehbar. Das ist das Standardwerkzeug für die Erzeugung von Passwörtern oder Sicherheitsschlüsseln.

Auf TirageAuSort.io verwenden wir das Erste für die große Mehrheit der Spiele (Münzwurf, Virtuelle Würfel, Glücksrad, Kartenziehungen) und das Zweite für sensible Werkzeuge: Passwort-Generator, Zufallsfarbe, Zufallsdatum. Das richtige Werkzeug am richtigen Ort. Eine bewusste technische Entscheidung, keine Voreinstellung.

Die vier Garantien der Fairness

Den richtigen Generator zu wählen reicht nicht. Eine Ziehung kann verzerrt bleiben, wenn der Code rundherum schlecht geschrieben ist. Vier Regeln umrahmen jedes Spiel der Seite.

Eine gleichmäßige Verteilung

Beim Münzwurf muss Kopf in 50 % der Fälle fallen und Zahl in 50 % — nicht 49/51. Beim Zahlengenerator zwischen 1 und 100 muss jede Ganzzahl exakt 1 % Chance haben. Das wirkt offensichtlich, aber ein klassischer Fehler besteht darin, den Modulo-Operator (den Rest einer Division) auf die Rohausgabe des Generators anzuwenden, was eine winzige, aber reale Verzerrung in bestimmten Bereichen einführt. Wir vermeiden diese Falle mit der Standardmethode, die in der offiziellen Web-Dokumentation empfohlen wird: das Ergebnis mit der oberen Schranke multiplizieren und abrunden. Resultat: Über 10 000 Ziehungen bleibt der Abstand zwischen den Werten statistisch unbedeutend.

Kein Gedächtnis zwischen den Ziehungen

Jeder Klick ist ein unabhängiges Ereignis. Die Seite speichert Ihre vorherigen Ergebnisse nicht, um die folgenden „auszugleichen“ — das wäre genau der Spielerfehlschluss auf den Code übertragen, dem wir übrigens einen ganzen Artikel widmen. Wenn Sie sieben Kopf in Folge ziehen, hat der achte Wurf immer noch 50 % Chance, Kopf zu sein. Das ist unangenehm für die Intuition, aber genau das ist es, was unser Code rigoros produziert.

Alles passiert in Ihrem Browser

Das ist wahrscheinlich der wichtigste Punkt. TirageAuSort.io ist eine statische Seite: Es gibt keinen Server, der über Ihr Ergebnis „entscheidet“. Wenn Sie klicken, läuft die Berechnung auf Ihrer eigenen Maschine, in dem JavaScript-Code, den Sie beim Aufrufen der Seite heruntergeladen haben. Das macht jede serverseitige Manipulation technisch unmöglich — es gibt keinen Server. Außerdem macht es den Code einsehbar, was uns zum nächsten Punkt führt.

Das richtige Werkzeug für den richtigen Einsatz

Nehmen wir das Passwort-Beispiel wieder auf. Würden wir Math.random() verwenden, um einen 16 Zeichen langen Schlüssel zu erzeugen, könnten zwei Personen, die die Seite in derselben Millisekunde besuchen, theoretisch teilweise vorhersehbare Passwörter erhalten. Mit crypto.getRandomValues() verschwindet dieses Risiko: Der Generator speist sich direkt aus den Entropiequellen des Betriebssystems (Mausbewegungen, Tastatureingaben, Netzwerkereignisse), in Übereinstimmung mit den Sicherheitsempfehlungen des NIST. Wo die Qualität des Zufalls Konsequenzen hat, schalten wir einen Gang höher.

So überprüfen Sie es selbst

Hier kommt der Teil, der diesen Artikel anders macht: Sie müssen uns nicht aufs Wort glauben.

Test Nr. 1 — Den Code lesen. Drücken Sie auf jeder Seite der Website die Taste F12. Ein Fenster öffnet sich: das sind die Entwicklerwerkzeuge, seit Jahren in Ihrem Browser eingebaut. Suchen Sie den Reiter „Quellen“ oder „Debugger“. Dort finden Sie das auf der Seite ausgeführte JavaScript im Klartext. Suchen Sie nach Math.random oder crypto.getRandomValues: Sie lesen buchstäblich die Zeile, die Ihr Ergebnis erzeugt. Keine Verschleierung, kein versteckter Aufruf an einen Drittanbieterdienst.

Test Nr. 2 — Die Verteilung. Werfen Sie hundertmal hintereinander die Münze. Notieren Sie die Ergebnisse. Sie sollten ungefähr bei 50/50 landen, mit einer möglichen Abweichung von rund zehn nach oben oder unten. Wenn Sie strenger vorgehen wollen, öffnen Sie die Browser-Konsole (immer noch über F12, Reiter „Konsole“) und geben Sie ein: let p = 0; for (let i = 0; i < 10000; i++) if (Math.random() < 0.5) p++; p — Sie werden eine Zahl zwischen 4 900 und 5 100 sehen. Das ist mathematischer Zufall, ohne Inszenierung.

Test Nr. 3 — Die Kohärenz. Die Seite ist ein unabhängiges französischsprachiges Projekt, ohne Investor und ohne Werbenetzwerk, die ein Interesse hätten, die Ziehungen zu verzerren. Das einzige Gut, das wir schützen, ist das Vertrauen, das Sie einem Werkzeug schenken, das eine echte Entscheidung beilegt. Schummeln wäre wirtschaftlich absurd, technisch erkennbar und ethisch disqualifizierend für die Zukunft des Projekts.

Zufall ist ein mieses Marketingargument

Viele Seiten sprechen von „zertifizierten Ziehungen“, ohne anzugeben, von wem oder mit welcher Methode. Unser Ansatz ist das Gegenteil: kein Label, kein vages Versprechen — nur zwei standardisierte Web-Funktionen, korrekt verwendet, lokal ausgeführt und für jede einsehbar, die die Entwicklerwerkzeuge öffnet. Wenn morgen jemand einen Fehler in unserem Code findet, ist er per Konstruktion öffentlich und wird korrigiert. Das ist die praktische Definition einer verlässlichen Online-Zufallsziehung: kein Verkaufsargument, sondern ein technischer Vertrag, den Sie auditieren können.

Um tiefer einzusteigen, können Sie unsere Artikel über warum wir die Casino-Spiele entfernt haben, über die Anzeichen problematischen Spielens und über die echten Wahrscheinlichkeiten beim Münzwurf lesen — der praktische Test dieser Fairness über 10 000 Würfe, mit der Standardabweichung und der Formel log₂(N), um zu verstehen, warum 13 Köpfe in Folge nichts Außergewöhnliches sind. Die Transparenz des Motors ist der erste Schritt; zu verstehen, was sich in Ihrem Kopf abspielt, ist die logische Fortsetzung.

Questions fréquentes

Sind meine Ergebnisse wirklich zufällig?

Ja, so zufällig, wie ein Computer es sein kann. Für Entscheidungsspiele (Münzwurf, Würfel, Glücksrad) verwenden wir den eingebauten Zufallsalgorithmus des Browsers, der eine gleichmäßige Verteilung erzeugt: Bei 10 000 Münzwürfen erhalten Sie zwischen 4 900 und 5 100 Mal Kopf. Für sensible Werkzeuge wie den Passwort-Generator setzen wir einen stärkeren kryptografischen Generator ein. Keine Ziehung wird gewichtet, gespeichert oder wiederholt: Das Ergebnis wird lokal in Ihrem Browser berechnet, in dem Moment, in dem Sie klicken.

Verkaufen Sie meine persönlichen Daten?

Nein. Die Ziehungen finden vollständig in Ihrem Browser statt — nichts wird an einen Server gesendet, also gibt es auch nichts weiterzuverkaufen. Die Seite verlangt weder Anmeldung noch E-Mail noch Profil. Die einzigen erfassten Daten betreffen anonymisierte Reichweitenkennzahlen (Besucherzahl, Seitenaufrufe, Land) über übliche Analysewerkzeuge. Unsere Datenschutzerklärung legt das in klarer Sprache offen.

Warum kommt meine Glückszahl nie heraus?

Weil das menschliche Gedächtnis sich auffällige Ergebnisse merkt und den Rest vergisst. Beim Zahlengenerator zwischen 1 und 100 hat Ihre Lieblingszahl bei jeder Ziehung exakt 1 % Chance, gezogen zu werden — nicht mehr und nicht weniger. Wenn Sie das Gefühl haben, sie komme „nie heraus“, ist das fast immer ein Wahrnehmungseffekt: Sie bemerken die Male, in denen sie fehlt, nicht die, in denen sie fällt. Das nennt man Bestätigungsfehler, und er ist ein naher Verwandter des Spielerfehlschlusses.

Kann der Code wirklich von jedem überprüft werden?

Ja. TirageAuSort.io ist eine statische Frontend-Seite: Jede Codezeile, die eine Ziehung berechnet, läuft in Ihrem Browser und wird also im Klartext auf Ihre Maschine geladen. Ein Rechtsklick und „Seitenquelltext anzeigen“ oder das Öffnen der Entwicklerwerkzeuge (F12-Taste) reicht aus, um die Funktionen am Werk zu sehen. Sie können buchstäblich die Zeile lesen, die Math.random() oder crypto.getRandomValues() aufruft. Kein Teil der Ziehung versteckt sich hinter einer serverseitigen Blackbox.

Pour essayer

Articles liés

— Quellen

  1. Math.random() — MDN Web Docs
  2. Crypto.getRandomValues() — MDN Web Docs
  3. There's Math.random(), and then there's Math.random() — V8 Engine Blog
  4. NIST SP 800-90A Rev. 1 — Recommendation for Random Number Generation Using Deterministic Random Bit Generators