Bei vielen „zufälligen“ Tools im Internet ist das stillschweigend nicht der Fall – das Sortieren einer Liste mit einem naiven Math.random() - 0,5-Komparator führt beispielsweise zu einer messbar voreingenommenen Sortierung. In diesem Leitfaden wird erläutert, warum Random Picker stattdessen die kryptografische Zufallsquelle des Browsers verwendet, wie sich die Auswahl mit und ohne Wiederholungen unterscheidet und warum die ausschließlich clientseitige Ausführung von Büroverlosungen bis hin zu sensibleren Auswahlen wichtig ist.
Warum crypto.getRandomValues statt Math.random
Math.random() ist nicht als kryptographisch sicher oder einheitlich über Browser und Engines verteilt spezifiziert, und eine naive modulobasierte Indexauswahl (Math.floor(Math.random() * n)) kann zu einer kleinen, aber echten Tendenz zu niedrigeren Indizes führen. crypto.getRandomValues garantiert in Kombination mit der Ablehnungsstichprobe – das Verwerfen von Draws außerhalb des Bereichs anstelle der direkten Verwendung von Modulo – ein unvoreingenommenes Ergebnis. Dabei handelt es sich um die gleiche Zufälligkeitsklasse, die Browser zum Generieren von Verschlüsselungsschlüsseln verwenden.
Kommissionierung mit vs. ohne Ersatz
Auf den Registerkarten „Auswählen“ und „Mehrere“ wählen Sie eine Teilmenge Ihrer Liste aus. Wenn die Option „Keine Wiederholungen“ aktiviert ist, wird jeder ausgewählte Eintrag vor der nächsten Auswahl aus dem Pool entfernt, sodass niemand oder nichts zweimal ausgewählt wird. Wenn Sie mehr eindeutige Auswahlen anfordern, als Einträge vorhanden sind, zeigt das Tool einen Validierungsfehler an, anstatt stillschweigend Wiederholungen zu zeichnen – verringern Sie die Anzahl der Auswahlen, fügen Sie mehr Einträge hinzu oder deaktivieren Sie „Keine Wiederholungen“.
Fisher-Yates-Mischen erklärt
Die Registerkarte „Mischen“ – und die interne Logik hinter einer Mehrfachauswahl ohne Wiederholungen – verwendet den Fisher-Yates-Algorithmus: Beginnen Sie mit der letzten Position, tauschen Sie sie durch eine zufällige frühere oder gleiche Position aus, verschieben Sie sie dann eine Position nach links und wiederholen Sie den Vorgang. Dies erzeugt jedes der N! mögliche Reihenfolgen mit gleicher Wahrscheinlichkeit, im Gegensatz zu naiven „Sortieren nach Zufallskomparator“-Ansätzen, die bekanntermaßen bestimmte Reihenfolgen verzerren.
Wann Sie die einzelnen Modi verwenden sollten
Verwenden Sie „Auswählen“ für einen einzelnen Gewinner – einen Hauptpreis bei einer Tombola oder die Entscheidung, wer zuerst geht. Verwenden Sie „Mehrfach“ für mehrere Gewinner oder eine Auswahlliste, wobei „Keine Wiederholungen“ aktiviert ist, wenn dieselbe Person oder dasselbe Objekt nicht zweimal gewinnen soll. Verwenden Sie „Shuffle“, wenn Sie eine ganze Sequenz zufällig anordnen müssen, z. B. eine Sprechreihenfolge, eine Teamzuweisungsreihenfolge oder eine Playlist-Reihenfolge, anstatt eine Teilmenge auszuwählen.