Kryptografische Auswahl: Echte Zufälligkeit und faire Gewinnspiele
Cryptographic Selection verwendet sichere Algorithmen, um Arrays nach dem Zufallsprinzip zu mischen und unvoreingenommene Gewinner für Werbegeschenke, Lotterien und statistische Stichproben zu ermitteln.
Standardmäßige Web-Randomisierer verwenden oft fehlerhafte, vorhersehbare Mathematik. Dieses Dienstprogramm implementiert den Shuffle-Algorithmus von Fisher Yates, der von der nativen Web Crypto API unterstützt wird, und gewährleistet absolute, überprüfbare Fairness vollständig Client-Seite.
Formel & Berechnungsmethode
Fisher Yates Shuffle = Iterate(Array rückwärts) ➔ Swap(Aktueller Index, Zufallsindex)
Der Algorithmus beginnt am Ende der Liste und tauscht jedes Element systematisch durch ein anderes, zufällig ausgewähltes Element aus, das davor positioniert ist. Dies garantiert, dass jede mögliche Permutation der Liste gleich wahrscheinlich ist.
Best Practices & Tipps
- Bereinigen Sie zuerst Ihre Daten: Bevor Sie eine große Verlosung durchführen, stellen Sie sicher, dass Sie leere Zeilen entfernen und doppelte Einträge herausfiltern (es sei denn, der Kauf mehrerer Tickets ist ausdrücklich erlaubt), um mathematische Verzerrungen zu vermeiden.
- Verwenden Sie die Web Crypto API: Standardmäßig ist „Math.random()“ in JavaScript „Pseudo Random“. Es verwendet vorhersehbare Startzustände, die theoretisch rückentwickelt werden können. Verlosungen mit hohen Einsätzen müssen „crypto.getRandomValues()“ für echte Zufälligkeit verwenden.
- Zeichnen Sie die Ziehung auf: Da das Mischen völlig zufällig und clientseitig erfolgt, können die Ergebnisse nicht reproduziert werden. Wenn Sie einen Gewinner für eine öffentliche Verlosung ziehen, zeichnen Sie immer den Bildschirm des Browserfensters auf, um einen überprüfbaren Beweis zu erhalten.