Ist das Glücksrad wirklich zufällig?
Ja. Das Gewinnersegment steht im Moment des Klicks fest, gezogen aus der kryptografischen Zufallsquelle des Browsers. Hier erfährst du genau wie, und wie du es selbst testest.
Das Glücksrad ist zufällig: Bei jedem Dreh wird eine neue Zahl aus crypto.getRandomValues gezogen, der in den Browser eingebauten kryptografischen Zufallsquelle, und allein diese Zahl bestimmt, welches Segment gewinnt. Die Entscheidung fällt im Moment des Klicks, bevor sich das Rad bewegt, und nichts an der Animation, am Zeitpunkt oder an früheren Ergebnissen kann sie ändern. Der Rest dieser Seite zeigt jeden Schritt und endet mit einem Simulator, mit dem du die Behauptung selbst überprüfen kannst.
Was beim Klick auf Drehen passiert
Drei Dinge passieren nacheinander, und die Reihenfolge ist der ganze Punkt. Erstens liefert der Browser eine Zufallszahl, und der Code wählt damit ein Segment. Zweitens berechnet der Code innerhalb dieses Segments einen Haltewinkel und addiert mehrere volle Umdrehungen. Drittens läuft das Rad von seiner aktuellen Position bis zu diesem Winkel und wird dabei auf einer festen Kurve langsamer, bis es steht.
- 1Das Gewinnersegment steht im Moment des Klicks fest, gezogen mit den kryptografischen Zufallszahlen des Browsers.
- 2Das Rad macht mehrere volle Umdrehungen und wird auf einer festen Kurve zu diesem Segment hin langsamer.
- 3Der Zeiger bleibt mitten im Segment stehen, weit weg von den Kanten, deshalb gibt es nie ein Unentschieden.
Der Dreh, den du siehst, ist also die Wiedergabe einer bereits getroffenen Entscheidung. Könntest du die Animation ein Bild nach dem Klick anhalten und die Variable mit dem gewählten Segment auslesen, stünde dort schon, welcher Name gleich gewinnt. Das Rad „entscheidet nicht beim Langsamerwerden“, und es gibt keinen Moment während des Drehs, in dem noch der Zufall mitspielt. Ein erneuter Klick während des Drehens bewirkt nichts; die nächste Ziehung findet erst statt, wenn du den nächsten Dreh startest.
Woher die Zufallszahl kommt
Browser bieten zwei Wege zu einer Zufallszahl. Math.random ist der alltägliche, schnell und für Spiele in Ordnung, aber eine Pseudozufallsfolge, bei der der Browser keine Unvorhersagbarkeit zusichert. crypto.getRandomValues ist der andere: Er wird aus dem Entropiepool des Betriebssystems gespeist, derselben Quelle, die Verschlüsselungsschlüssel und Sitzungstoken erzeugt, und er ist der, den das Rad nutzt.
Der Code fordert eine vorzeichenlose 32-Bit-Ganzzahl an, also eine ganze Zahl von 0 bis 4.294.967.295, und teilt sie durch 4.294.967.296. Das ergibt einen Bruch von 0 bis ausschließlich 1, bei dem jeder mögliche Wert gleich wahrscheinlich ist. Hätte ein sehr alter Browser gar keine kryptografische Quelle, würde der Code auf Math.random zurückfallen, statt das Drehen zu verweigern, aber jeder aktuelle Browser auf Desktop und Handy unterstützt crypto.getRandomValues seit Jahren, sodass der Rückfall in der Praxis nie greift.
Pro Dreh wird ein Bruch gezogen, und ein zweiter nur, um zu bestimmen, wo innerhalb des Gewinnersegments der Zeiger stehen bleiben soll. Keiner wird wiederverwendet, gespeichert oder irgendwohin geschickt. Der Simulator weiter unten auf dieser Seite ruft dieselbe Funktion auf, weshalb seine Ergebnisse ein guter Ersatz für das echte Rad sind.
Wie aus einer Zufallszahl ein Segment wird
Stell dir das Rad als Kreis mit 360 Grad vor, mit dem Zeiger fest oben. Bei acht gleich großen Einträgen umfasst jedes Segment 45 Grad. Multiplizierst du den Zufallsbruch mit 360, bekommst du einen Winkel; teilst du ihn durch 45 und rundest ab, hast du das Segment. Ein Bruch von 0,564 wird zu 203 Grad, das ist Segment Nummer fünf, vom Zeiger aus im Uhrzeigersinn gezählt.
Das Rad ist ein Kreis mit 360°. Bei 8 gleich großen Einträgen umfasst jedes Segment 45°. Gezogen wird ein Winkel, und das Segment ergibt sich einfach aus dem Winkel geteilt durch die Segmentgröße.
203° ÷ 45° = 4.51 → Segment 5
Gewichtete Einträge ändern die Segmentgrößen, nicht das Verfahren. Ein als Pizza*3 geschriebener Eintrag hat Gewicht 3 und ein normaler Eintrag Gewicht 1; mit Pizza und drei normalen Einträgen ist die Summe also 6, und das Pizza-Segment deckt 3 Sechstel des Kreises ab, 180 Grad. Der Code geht die Einträge durch und addiert Gewichte, bis die Zwischensumme die Zufallszahl mal das Gesamtgewicht übersteigt, und der Eintrag, bei dem er anhält, gewinnt. Das auf dem Bildschirm gezeichnete Segment ist nach genau derselben Rechnung bemessen, weshalb die Chancen, die du siehst, die Chancen sind, die du bekommst. Ein Eintrag mit Gewicht 0 bekommt gar keinen Bereich und kann nie gewinnen, bleibt aber in der Liste sichtbar.
Warum die Animation das Ergebnis nicht ändern kann
Sobald das Segment feststeht, wählt der Code einen Haltewinkel irgendwo zwischen 15 und 85 Prozent der Breite des Segments, der Zeiger endet also nie auf einer Grenze und es gibt nie ein Unentschieden aufzulösen. Dann addiert er ganze Umdrehungen: vier bei einem kurzen Dreh, sieben bei Normal, elf bei Lang. Das Rad läuft von seinem aktuellen Winkel auf einer Ease-out-Kurve zum Ziel, anfangs schnell, dann stetig langsamer, und bleibt exakt auf dem Ziel stehen.
Diese Kurve hat jedes Mal dieselbe Form. Ein langer Dreh ist nicht „zufälliger“ als ein kurzer; er ist dieselbe Entscheidung mit mehr Umdrehungen als Dekoration davor. Das Klickgeräusch beim Passieren jeder Segmentkante und das Konfetti am Ende entstehen in der Animation, nicht in der Auswahl, und sie auszuschalten ändert nichts an den Chancen. Dasselbe gilt für Räder mit mehr als 200 Einträgen, bei denen die Seite das gezeichnete Rad durch eine Laufliste ersetzt: Das Ziel wird weiterhin vorab gewählt, und der Lauf ist so getaktet, dass er darauf anhält.
Kann man das Rad manipulieren?
Nur auf Weisen, die du sehen kannst. Die Chancen dieses Rads werden von der Liste bestimmt und von nichts sonst, und die Liste steht in einem Textfeld vor dir. Steht ein Name zweimal drin, hat er zwei Segmente. Trägt er ein *3, hat er drei Anteile. Beides ist auf dem Rad als größere oder doppelte Fläche zu sehen und beides ist als Text zu sehen. Es gibt keine Einstellung, die ein Segment öfter gewinnen lässt, ohne seine Größe zu ändern, und es ist kein Server beteiligt, der ein Ergebnis austauschen könnte.
Bei einem Gewinnspiel ist das die Prüfung, die du deinem Publikum anbieten kannst: die Liste zeigen, zeigen, dass jeder Name einmal ohne Gewichte vorkommt, und im Vollbild drehen. Erstellst du einen Link zum Teilen, steckt die ganze Liste im Link selbst, wer ihn öffnet, sieht also dasselbe Rad und kann bestätigen, dass nichts verborgen war. Das Namensrad ist genau dafür eingerichtet, mit „Gewinner nach jedem Dreh entfernen“, damit ein gezogener Name nicht noch einmal gezogen werden kann.
Zwei Dinge, die manchmal mit Verzerrung verwechselt werden, verdienen eine Erwähnung. Kurze Serien wirken klumpig: Bei acht Namen und zehn Drehs bleibt fast immer ein Name ungezogen und ein anderer kommt doppelt, und genau so sieht Zufall bei kleinen Zahlen aus. Außerdem merken sich Menschen die Drehs, die zu einer Geschichte passen, etwa dieselbe Schülerin an zwei Tagen hintereinander, und vergessen die Hunderte, die das nicht taten. Der Simulator unten soll beide Eindrücke durch Zählungen ersetzen.
Teste es selbst: der Dreh-Simulator
Der Simulator führt die echte Auswahl aus, dieselbe Funktion pickWeighted mit derselben kryptografischen Quelle, so oft du willst, und lässt nur die Animation weg. Jeder Balken ist eines von acht gleich großen Segmenten, und die gestrichelte Linie ist die Zahl, die eine vollkommen gleichmäßige Verteilung ergäbe. Probier zuerst 100 Drehs, dann 100.000, und sieh zu, wie sich die Balken mit wachsenden Zahlen um die Linie zusammenziehen.
Um das Bild in eine Zahl zu verwandeln, führt der Simulator einen Chi-Quadrat-Test aus. Er nimmt die Zahl jedes Segments, zieht die erwartete Zahl ab, quadriert die Differenz, teilt durch die erwartete Zahl und addiert die acht Ergebnisse. Eine kleine Summe bedeutet, dass jeder Balken nahe an der Linie liegt; eine große, dass mindestens ein Balken weit davon entfernt ist. Bei 1000 Drehs ist die erwartete Zahl 125 pro Segment, und Balken von etwa 105 bis 145 sind normal.
Der p-Wert übersetzt diese Summe in eine Frage: Wie oft würde ein vollkommen faires Rad allein durch Glück eine mindestens so ungleichmäßige Verteilung erzeugen? Ein p-Wert von 0,30 heißt, dass ein faires Rad das in etwa 30 Prozent der Fälle tut, also nichts Ungewöhnliches. Die Urteilszeile nutzt die übliche Grenze von 0,05. Bei oder über diesem Wert ist das Ergebnis passend zu einem fairen Rad. Darunter ist die Verteilung eine, die ein faires Rad weniger als einmal in zwanzig Fällen erzeugt, selten genug für einen zweiten Blick.
Unter 0,05 bedeutet nicht, dass das Rad verzerrt ist, und genau das verstehen viele falsch. Jeder zwanzigste faire Durchlauf landet per Definition dort, drückst du den Knopf also zwanzigmal, solltest du etwa eine Warnung erwarten. Ein verzerrtes Rad verhält sich anders: Es fällt immer wieder durch, und jedes Mal ragt dasselbe Segment heraus. Bei acht Segmenten muss die Chi-Quadrat-Summe über etwa 14,1 steigen, bevor der p-Wert unter 0,05 fällt; ein Rad, das ein Segment auch nur um wenige Prozent still bevorzugt, würde das bei jedem Durchlauf mit 100.000 Drehs überschreiten und einen p-Wert weit unter 0,001 zeigen.
Wenn du lieber das echte Rad als einen Simulator prüfst, öffne ein beliebiges Rad mit kurzer Liste, stell die Drehdauer auf Kurz und dreh es hundertmal. Der Tab Ergebnisse hält jedes Ergebnis der Sitzung fest; kopier ihn, füg ihn in eine Tabelle ein und zähl. Du siehst dasselbe Verhalten wie bei den Balken oben: Zahlen, die um einen gleichen Anteil schwanken, in jeder Sitzung in eine andere Richtung driften und nie einen Liebling finden.
Das Glücksrad auf der Startseite ist die Allzweckversion von allem, was hier beschrieben wurde, mit Gewichten, gespeicherten Rädern und Links zum Teilen. Brauchst du nur eine faire Entscheidung zwischen zwei Möglichkeiten, wechselt das Ja-Nein-Rad Ja und Nein rund um das Rad ab, sodass beide Antworten immer identische Chancen haben. Zum Auslosen von Namen, bei dem jede Ziehung fair sein und als fair erkennbar sein muss, führt das Namensrad Buch über jedes Ergebnis und entfernt Gewinner nebenbei.
Häufige Fragen
Ist das Glücksrad wirklich zufällig?
Ja. Bei jedem Dreh wird eine Zahl aus crypto.getRandomValues gezogen, derselben Zufallsquelle, die Browser für Verschlüsselungsschlüssel nutzen, und allein diese Zahl bestimmt das Segment. Die Dreh-Animation beginnt erst nach der Entscheidung und bringt das Rad nur noch zum gewählten Segment.
Kann man ein Glücksrad manipulieren?
Nicht durch etwas, das du nicht sehen kannst. Die einzigen Wege, die Chancen an diesem Rad zu ändern, sind, einen Eintrag mehrfach hinzuzufügen oder ihm ein Gewicht wie Name*3 zu geben, und beides zeigt sich als größeres Segment auf dem Rad und als Text in der Liste. Es gibt keine versteckte Einstellung, keinen Server und kein Konto, das einen Eintrag bevorzugen könnte.
Spielt es eine Rolle, wann ich klicke oder wie lange das Rad dreht?
Nein. Die Zufallszahl wird im Moment des Klicks gezogen, und das Segment steht ab dann fest. Die Einstellung Drehdauer ändert nur, wie viele Umdrehungen die Animation macht, bevor sie ankommt; Kurz, Normal und Lang landen bei derselben Ziehung auf demselben Segment.
Wie verändern gewichtete Einträge die Chancen?
Die Chance eines Eintrags ist sein Gewicht geteilt durch das Gesamtgewicht der Liste. Bei vier Einträgen, von denen einer mit 3 gewichtet ist, hat dieser Eintrag 3 von 6 Chancen, also 50 Prozent, und sein Segment nimmt das halbe Rad ein. Die Zufallszahl wird mit diesen Segmentgrößen abgeglichen, das gezeichnete Bild und die echten Chancen sind also dasselbe.
Was bedeutet der p-Wert im Dreh-Simulator?
Er ist die Wahrscheinlichkeit, dass ein vollkommen faires Rad eine Verteilung der Häufigkeiten erzeugt, die mindestens so ungleichmäßig ist wie die eben gesehene. Ein p-Wert ab 0,05 bedeutet, dass das Ergebnis für ein faires Rad normal ist. Ein Wert darunter ist ungewöhnlich, aber kein Beweis für Verzerrung: Etwa jeder zwanzigste faire Durchlauf landet zufällig dort, also probier es nochmal.
Wie kann ich das echte Rad statt des Simulators prüfen?
Dreh ein Rad mit wenigen Einträgen hundertmal oder öfter und öffne den Tab Ergebnisse, der jedes Ergebnis der Sitzung festhält. Kopier die Liste und zähl jeden Eintrag. Die Zahlen sollten nahe an einem gleichen Anteil liegen und von Sitzung zu Sitzung in verschiedene Richtungen abweichen, nie beständig zum selben Eintrag hin.
Kann das Rad auf einer Linie zwischen zwei Segmenten landen?
Nein. Nach der Wahl des Segments wird der Haltewinkel zwischen 15 und 85 Prozent der Breite dieses Segments gelegt, der Zeiger bleibt also immer deutlich im Segment stehen. Das leichte Wackeln des Zeigers beim Passieren der Segmentkanten ist nur Animation.
Weitere Glücksräder
- Ja-Nein-RadLass das Rad entscheiden: Ja, Nein oder Vielleicht.
- NamensradNamensliste einfügen und einen oder mehrere Namen auslosen.
- TeamgeneratorTeile eine Liste von Personen zufällig in Gruppen auf.
- Zufälliger BuchstabeEin A–Z-Rad für Spiele und den Unterricht.
- ZahlenradEine Zufallszahl zwischen zwei beliebigen Werten.
- Zufälliges LandDreh den Globus und lande in einem zufälligen Land.
- Glücksrad für den UnterrichtZehn Ideen, wie Lehrkräfte das Zufallsrad täglich einsetzen.
- GlücksradGib deine eigenen Einträge ein und dreh das Rad.