Gratis Myntkast och snurrhjul
Vänd ett virtuellt mynt, snurra ett anpassningsbart hjul eller välj slumpmässigt från en lista med alternativ. Använder din webbläsares kryptografiskt säkra slumpmässighet — inte en verifierbar offentlig dragning, så undvik reglerade tävlingar.
🔒 Alla tre använder din webbläsares kryptografiskt-säkra slumpmässighetsgenerator: resultatet väljs först och animeras sedan — myntet är en sann 50/50, hjulet snurras till sitt redan valda resultat och väljaren är opartisk. Ingenting lämnar din enhet. Detta är rättvist för casual användning, men det är inte en verifierbar offentlig dragning, så undvik reglerade tävlingar eller beslut med höga värden.
Vanliga användningar
- Vänd ett mynt för att fatta beslutAnvänd ett rättvist virtuellt myntkast för att fatta snabba, opartiska beslut när du sitter fast mellan två alternativ.
- Spinna hjul för slumpmässiga laguppgifterAnvänd det anpassningsbara spinnhjulet för att slumpmässigt tilldela lagmedlemmar till uppgifter, roller eller grupper.
- Slumpmässig elevväljare för klassrumAnvänd spinnhjulet eller alternativväljaren för att slumpmässigt kalla på elever, tilldela grupper eller välja volontärer.
- Virtuellt myntkast för sportVänd ett rättvist mynt för att bestämma lagssidor, första innehav, serveordning eller andra sportbeslut.
- Slumpmässig väljare för giveawaysVälj en slumpmässig vinnare från en postlista med hjälp av alternativväljaren — transparent och rättvis.
Så här fungerar det
Alla tre lägen — myntsingling, snurrhjul och alternativväljare — använder webbläsarens inbyggda Web Crypto API (crypto.getRandomValues) för att generera det vinnande utfallet, och driver sedan animationen helt klientsidesbaserat med CSS-transformationer och requestAnimationFrame. Ingen server är inblandad någonstans.
- 1Web Crypto väljer vinnarenInnan någon animation startar fyller crypto.getRandomValues en Uint32Array med ett kryptografiskt slumpmässigt 32-bitars heltal. En modulo-operation mappar det till antalet alternativ (2 för krona/klave, N för hjulet eller väljaren), så varje utfall har exakt samma sannolikhet.
- 2Rotationsvinkeln beräknas för att landa på resultatetFör myntet beräknar koden den kortaste extra rotationen (utöver den nuvarande ackumulerade vinkeln) som slutar med rätt sida upp — krona vid 0°, klave vid 180° — och lägger sedan till 5 hela varv så att det ser ut som en riktig singling. Hjulet gör samma sak: det hittar vinkelförskjutningen som för den vinnande skivan under pekaren, lägger till 6 hela varv och tillämpar lite slumpmässig darrighet så att pekaren inte alltid stannar mitt i skivan.
- 3CSS-övergångar och requestAnimationFrame driver animationenMyntet och hjulet animeras via CSS transform med en cubic-bezier-utjämningskurva tillämpad på ett enda ackumulerat rotationsvärde — ingen JavaScript per bildruta behövs när vinkeln väl är satt. Alternativväljaren använder istället requestAnimationFrame: varje bildruta avgör ett kvadratiskt växande intervall om markeringen ska flyttas fram, vilket ger en spelautomat-liknande inbromsning som alltid stannar på den förutbestämda vinnaren.
- 4Resultatet visas och loggas i sessionens historikEn setTimeout utlöses när animationen är klar (1,3 s för myntet, 4,3 s för hjulet) och skriver resultatet till state. Myntläget håller en löpande sessionshistorik med upp till 24 singlingar med antal krona/klave. Användare med prefers-reduced-motion aktiverat hoppar över animationen helt och ser resultatet direkt.
Relaterade verktyg
Lyckohjul
Skriv en lista med namn eller val, snurra hjulet och låt det välja ett slumpmässigt, med tickljud, konfetti och möjlighet att ta bort varje vinnare.
Slumptalgenerator
Generera slumptal i valfritt intervall, skapa unika tallistor eller kasta tärning. Använder kryptografiskt säker slumpmässighet.
Slumpmässig lagsgenerator
Dela en namnlista i balanserade slumpmässiga lag — efter antal lag eller lagstorlek. Kryptografiskt rättvis blandning, direkt omblandning.