Ga naar hoofdinhoud
LibraTool logoLibraTool

Gratis Muntworp en draaiwiel

Flip een virtuele munt, spin een aanpasbaar wiel of kies willekeurig uit een lijst met opties. Gebruikt de cryptografisch veilige willekeurigheid van uw browser — geen openbare trekkingsloterij die kan worden geverifieerd, dus vermijd gereglementeerde wedstrijden.

Werkt offline na het laden

🔒 Alle drie gebruiken de cryptografisch veilige willekeurige generator van uw browser: het resultaat wordt eerst gekozen en vervolgens geanimeerd — de munt is een echt 50/50, het wiel wordt naar het al gekozen resultaat gedraaid en de picker is onbevooroordeeld. Niets verlaat uw apparaat. Dit is eerlijk voor casual gebruik, maar het is geen openbare trekkingsloterij die kan worden geverifieerd, dus vermijd gereglementeerde wedstrijden of beslissingen met hoge waarde.

Veelvoorkomend gebruik

  • Flip een Munt voor BeslissingenGebruik een eerlijke virtuele muntflip om snelle, onbevooroordeelde beslissingen te nemen als je twijfelt tussen twee opties.
  • Draai Wiel voor Willekeurige TeamtakenGebruik het aanpasbare wiel om teamleden willekeurig toe te wijzen aan taken, rollen of groepen.
  • Willekeurige Studentkiezer voor KlaslokalenGebruik het wiel of de opties-kiezer om willekeurig studenten op te roepen, groepen toe te wijzen of vrijwilligers te selecteren.
  • Virtuele Muntflip voor SportFlip een eerlijke munt om teamsides, eerste bezit, serveerorder of andere sportbeslissingen te bepalen.
  • Willekeurige Kiezer voor GiveawaysSelecteer een willekeurige winnaar uit een inzendinglijst met behulp van de Opties-kiezer - transparant en eerlijk.

Hoe het werkt

Alle drie de modi — munt opgooien, rad draaien en optiekiezer — gebruiken de ingebouwde Web Crypto API van de browser (crypto.getRandomValues) om de uitkomst te bepalen, en sturen de animatie volledig client-side aan met CSS-transforms en requestAnimationFrame. Er komt op geen enkel moment een server aan te pas.

  1. 1
    Web Crypto kiest de winnaar
    Voordat een animatie begint, vult crypto.getRandomValues een Uint32Array met een cryptografisch willekeurig 32-bits geheel getal. Een modulobewerking koppelt dat aan het aantal opties (2 voor kop/munt, N voor het rad of de kiezer), zodat elke uitkomst precies even waarschijnlijk is.
  2. 2
    De draaihoek wordt berekend om op het resultaat te landen
    Voor de munt berekent de code de kortste extra draaiing (bovenop de huidige cumulatieve hoek) die eindigt met de juiste kant boven — kop op 0°, munt op 180° — en voegt 5 volledige omwentelingen toe zodat het op een echte worp lijkt. Het rad doet hetzelfde: het zoekt de hoekverschuiving die het winnende segment onder de wijzer brengt, voegt 6 volledige rotaties toe en past een kleine willekeurige afwijking toe zodat de wijzer niet altijd precies in het midden van het segment stopt.
  3. 3
    CSS-transities en requestAnimationFrame sturen de animatie
    De munt en het rad bewegen via CSS-transform met een cubic-bezier-easingcurve op één opgetelde rotatiewaarde — zodra de hoek is ingesteld is er geen JavaScript per frame nodig. De optiekiezer gebruikt in plaats daarvan requestAnimationFrame: elk frame bepaalt een kwadratisch groeiend interval of de markering verder moet, wat een gokkastachtige vertraging geeft die altijd stopt op de vooraf bepaalde winnaar.
  4. 4
    Het resultaat wordt getoond en in de sessiegeschiedenis vastgelegd
    Een setTimeout wordt geactiveerd als de animatie klaar is (1,3 s voor de munt, 4,3 s voor het rad) en schrijft het resultaat naar de state. De muntmodus houdt een lopende sessiegeschiedenis bij van maximaal 24 worpen met aantallen kop/munt. Gebruikers met prefers-reduced-motion ingeschakeld slaan de animatie helemaal over en zien het resultaat meteen.

Gerelateerde tools

Veelgestelde vragen