Zum Inhalt springenSpinRondo

Wie eine Ziehung gemacht wird

Jede Drehung nimmt einen Wert aus dem kryptografischen Zufallsgenerator deines Browsers, rechnet ihn mit exakter Ganzzahl-Arithmetik auf die Einträge um und schreibt das Ergebnis in ein Protokoll auf deinem Gerät. Diese Seite nennt das Verfahren, die Rechnung dahinter und das, was das Werkzeug nicht zusagt.

Geschrieben und gepflegt von SpinRondo · zuletzt geprüft am

Welche Zufallsquelle nutzt eine Drehung?

Web Crypto — den kryptografisch sicheren Generator des Browsers selbst, erreichbar über crypto.getRandomValues. Nie Math.random: Das ist ein Pseudozufallsgenerator mit Startwert, dessen Zustand ein Skript auf derselben Seite eingrenzen kann und für den die Spezifikation überhaupt keine Unvorhersehbarkeit zusagt.

Die Werte kommen in Blöcken von 256 Wörtern in einen privaten Puffer, weil eine Drehung neun davon braucht — eines für den Gewinner und acht für die Kennung der Ziehung — und ein Plattformaufruf pro Wort neun Aufrufe pro Druck wären. Der Puffer gehört der Seite, die du offen hast; nichts daran wird geteilt, gespeichert oder verschickt.

Warum wirft das Rad Zufallszahlen weg?

Weil ein 32-Bit-Zufallswort modulo der Segmentzahl nicht gleichverteilt ist, solange die Segmentzahl 2³² nicht glatt teilt — und das tut sie bei keinem Rad, dessen Länge keine Zweierpotenz ist. Die ersten Segmente bekämen je ein Wort mehr und wären um etwa den Faktor eins plus n geteilt durch 2³² bevorzugt.

Also verwirft die Ziehung den Rest. Sie nimmt das größte Vielfache der Summe, das in den Wortbereich passt, wirft jedes Wort ab dieser Grenze weg und zieht erneut. Bei einem Rad mit sechs Segmenten liegt die damit entfernte Verzerrung bei etwa eins zu einer Milliarde — viel zu klein, als dass sie jemandem auffiele, und genau deshalb muss eine Seite über das Zufallsprinzip sie entfernen, statt sie vernachlässigbar zu nennen.

Wie verändert eine Gewichtung die Chance?

Die Chance eines Eintrags ist seine Gewichtung geteilt durch die Summe aller Gewichtungen, exakt. Die Gewichtungen werden als ganze Zahlen summiert, aus null bis zu dieser Summe wird eine gleichverteilte Ganzzahl gezogen, und das zugehörige Segment wird über die laufende Summe gefunden — keine Wahrscheinlichkeit liegt je als Dezimalzahl vor, es gibt also keine Rundung, in der sich eine Verzerrung verstecken könnte.

Der Rand wird aus denselben Zahlen gezeichnet. Der Winkel eines Segments ist sein Anteil an der Summe, ein Segment, das wie ein Fünftel des Rads aussieht, ist also ein Fünftel des Rads, und der Prozentwert neben einem Eintrag ist die Zahl, mit der die Ziehung tatsächlich rechnet.

Entscheidet die Animation, wo das Rad stehen bleibt?

Nein. Der Gewinner wird zuerst gezogen, und die Animation wird von ihm aus rückwärts berechnet: Die Geometrie macht aus dem gewinnenden Index den Winkel, auf dem das Rad enden muss, und die Drehung läuft auf diesen Winkel zu. Das Bild ist eine Abbildung des Ergebnisses und kann ihm nicht widersprechen.

Aus derselben Reihenfolge folgt, dass die Dauer der Drehung am Ergebnis nichts ändert. Eine Sekunde und sechzig Sekunden ziehen gleich; der Unterschied ist nur, wie lange der Raum zusieht.

Was ist eine Ziehungskennung, und wo liegt das Protokoll?

Jede Ziehung bekommt eine achtstellige Kennung aus derselben Zufallsquelle, geschrieben in einem Alphabet ohne I, L, O und U, damit sie sich von einem Beamer ablesen lässt, ohne falsch verstanden zu werden. Aufgezeichnet wird sie mit der Beschriftung des Eintrags, der Uhrzeit, dem Modus und der Zahl der danach verbliebenen Einträge.

Das Protokoll hält die Seite, auf der du bist, auf deinem Gerät, für die Dauer der Sitzung. Es wird nicht hochgeladen, und es überlebt den Tab nicht, wenn du es nicht exportiert hast. Das ist Absicht: Eine Liste, wer in einem Klassenzimmer gezogen wurde, ist genau die Art Aufzeichnung, die sich nicht auf dem Server eines anderen ansammeln sollte.

Was diese Seite nicht zusagt

Nichts hier ist zertifiziert, nichts ist auditiert, und von dritter Seite überprüfbar ist es auch nicht. Eine Ziehungskennung benennt eine Zeile in einem Protokoll, das dein eigener Browser geschrieben hat; das klärt eine Erinnerung, ist aber kein Nachweis, den jemand außerhalb des Raums prüfen kann, und ein veröffentlichtes Commitment-Verfahren steht bisher nicht dahinter.

Das hier ist also ein Werkzeug, um einen Namen in einem Raum zu ziehen, eine Reihenfolge für eine Besprechung, einen Preis an einem Stand. Es ist keine Zufallsquelle für eine Lotterie, eine erlaubnispflichtige Verlosung, einen Sicherheitsschlüssel oder irgendetwas, wo ein verzerrtes oder vorhersehbares Ergebnis andere Geld kostet. Die Werkzeuge, die dafür geradestehen, sind auditiert, und dieses ist es nicht.

Woher diese Angaben stammen

Zwei Aussagen auf dieser Seite betreffen die Plattform und nicht unseren eigenen Code: was die Zufallsquelle des Browsers laut Spezifikation tut und was sie laut Spezifikation ausdrücklich nicht zusichert. Beides lässt sich an der Quelle prüfen. Alles andere beschreibt die Maschinerie, die diese Seite betreibt.

Wenn hier etwas falsch ist

Sag Bescheid. Ein Fehler auf dieser Seite ist ein Fehler in der Hauptaussage des Produkts, eine Meldung dazu wird also vor allem anderen gelesen, und eine Korrektur erscheint mit dem Datum ihrer Änderung. Der Weg dahin ist das Kontaktformular, und die Antwort nennt, was geändert wurde, statt den Eingang zu bestätigen.