Zo blijft het rad eerlijk
Elke draai wordt bepaald door de cryptografische toevalsgenerator van je browser, nog voordat het rad begint te bewegen. Niets wat je typt wordt naar ons gestuurd. Deze pagina legt de methode uit en toont de nieuwste automatische controle.
Zo wordt een winnaar gekozen
De winnaar wordt getrokken met crypto.getRandomValues, dezelfde cryptografisch veilige generator die browsers gebruiken voor encryptiesleutels.
Willekeurige 32-bitgetallen worden met de verwerpingsmethode omgezet in een positie op het rad: een getal waardoor sommige opties net iets waarschijnlijker zouden worden dan andere, wordt weggegooid en opnieuw getrokken. Zo verdwijnt de kleine afwijking die ontstaat als je gewoon de rest na deling neemt.
Eerst wordt de winnaar gekozen. Daarna draait de animatie het rad zo dat het stopt binnen het vak van de winnaar, op een willekeurig punt uit de buurt van de randen.
Gewichten
Een optie die je schrijft als Pizza*3 heeft drie keer zoveel kans om te winnen als een optie met gewicht 1, en het vak is drie keer zo breed. Gewichten kunnen hele getallen of decimale getallen zijn van 0,001 tot 1.000.000.
Controleerbare trekkingen
Bij winacties en lotingen kan iedereen met een controleerbare trekking achteraf nagaan dat de uitslag niet is veranderd.
- Voor het draaien maakt de pagina een geheime seed aan en toont een SHA-256-hash van de seed, de opties en het tijdstip. Publiceer de hash, bijvoorbeeld in de chat van je stream, voordat je draait.
- De draai gebruikt een generator die op de geheime seed is gebaseerd, dus de seed en de opties bepalen samen volledig wie er wint.
- Na het draaien onthult de pagina de seed in een trekkingsbewijs. Iedereen kan het bewijs op de controlepagina plakken; die controleert de hash en berekent de winnaar opnieuw.
De exacte methode
De hash is de SHA-256 van deze UTF-8-tekst: een kopregel, het tijdstip van vastleggen, de seed en daarna één regel per optie met het gewicht, een tab en de naam.
weeks-and-random-draw v1
committed_at: 2026-10-16T14:05:09.123Z
seed: 64 hexadecimal characters
3 Pizza
1.5 Sushi
- De seed bestaat uit 32 willekeurige bytes van crypto.getRandomValues, geschreven als 64 hexadecimale tekens in kleine letters.
- De generator maakt 32-bitgetallen van SHA-256(seedbytes gevolgd door een teller van 4 bytes in big-endian), voor teller 0, 1, 2 enzovoort, en leest elke hash van 32 bytes als acht big-endian getallen.
- Als elk gewicht een heel getal is en het totale gewicht hoogstens 2^32 is, neemt de trekking het volgende 32-bitgetal, slaat het over zolang het minstens 2^32 − (2^32 mod totaal) is, en houdt de rest na deling door het totaal.
- Anders neemt de trekking de volgende twee 32-bitgetallen a en b en berekent ((a >> 5) × 2^26 + (b >> 6)) ÷ 2^53, een getal vanaf 0 en kleiner dan 1, en vermenigvuldigt dat met het totale gewicht.
- De winnaar is de eerste optie waarvan het oplopende totaal van de gewichten groter is dan dat getal.
Een controleerbare trekking bewijst dat de opties en de uitslag niet zijn veranderd nadat de hash is gepubliceerd. Ze kan niet voorkomen dat een organisator in het geheim meerdere hashes maakt en alleen de hash publiceert die hem bevalt. Publiceer de hash dus voordat de inschrijving sluit en maak er maar één.
Een trekkingsbewijs controleren
Nieuwste controle
Bij elke wijziging aan de site voert onze build deze tests uit. Laatst uitgevoerd: 19 oktober 2026 18:31.
Alle tests zijn geslaagd.
| Scenario | Aantal draaien | Chikwadraat | Vrijheidsgraden | p-waarde | Resultaat |
|---|---|---|---|---|---|
| 2 gelijke opties | 1.000.000 | 0,86 | 1 | 0,3544 | Geslaagd |
| 7 gelijke opties | 1.000.000 | 3,42 | 6 | 0,7549 | Geslaagd |
| 100 gelijke opties | 1.000.000 | 125,45 | 99 | 0,0375 | Geslaagd |
| 1.000 gelijke opties | 1.000.000 | 1081,73 | 999 | 0,0346 | Geslaagd |
| Modus Winnaar verwijderen, 7 opties, elke positie | 999.999 | 41,72 | 36 | 0,2360 | Geslaagd |
| Modus Geen herhaling, 7 opties, elke positie | 999.999 | 39,90 | 36 | 0,3007 | Geslaagd |
| Gewichten | Aantal draaien | Grootste verschil | Resultaat |
|---|---|---|---|
| 1, 2, 3, 4 | 1.000.000 | 0,030 procentpunt | Geslaagd |
| 0.5, 1.5, 3, 0.25 | 1.000.000 | 0,050 procentpunt | Geslaagd |
10.000 van de 10.000 geteste draaien stopten op de vooraf gekozen winnaar.
10.000 van de 10.000 willekeurige trekkingsbewijzen werden correct opnieuw berekend, zowel in de browser als door een onafhankelijke implementatie.
Versie van de radengine: d828d1f5c0c3.