Willekeurige kiezer

Plak uw lijst en laat de kiezer eerlijk loten. Elke trekking draait in uw browser met cryptografische willekeur, waardoor uw lijst uw apparaat nooit verlaat.

Druk op Genereren om het resultaat te krijgen
Het scheidingsteken wordt automatisch gedetecteerd, maar u kunt het hieronder kiezen.
Geavanceerde opties

Moet u een winnaar van een winactie loten, een leerling de beurt geven of bepalen wie de afwas doet? Deze willekeurige kiezer voor Nederland en Vlaanderen kiest eerlijk uit elke lijst die u plakt. Plaats uw elementen in het vak 'Elementen' — één per regel of gescheiden door komma's —, stel het gewenste aantal in bij 'Aantal' en druk op 'Genereren'. Een lijst heeft minstens twee elementen nodig en biedt plaats aan maximaal 1000 items van elk maximaal 200 tekens.

Elke trekking vindt direct in uw browser plaats via de Web Crypto API (crypto.getRandomValues), die cryptografisch veilige willekeurige waarden levert vanuit het onderliggende systeem van uw browser. Uw lijst wordt nooit naar een server gestuurd, nooit opgeslagen en nooit door ons gezien — en dat is hier nog belangrijker dan bij de meeste generatoren, omdat mensen vaak klantenlijsten, klassenlijsten of namen van collega's plakken. 'Laden uit bestand' biedt dezelfde garantie: uw browser leest zelf het bestand en vult het vak lokaal, zonder dat er iets wordt geüpload.

De opties zijn gemaakt voor de lijsten die mensen in de praktijk gebruiken. Het 'Scheidingsteken' staat op 'Automatisch', wat zelf het onderscheid maakt tussen nieuwe regels en komma's. Hierdoor werkt een lijst die is gekopieerd uit een spreadsheet, chatbericht of document zonder dat u de opmaak hoeft aan te passen. Zet hem vast op 'Nieuwe regel', 'Komma' of 'Spatie' wanneer uw gegevens formaten door elkaar gebruiken. Let op dat 'Spatie' altijd een handmatige keuze is en nooit automatisch gebeurt, omdat items zoals volledige namen zelf spaties bevatten en deze standaard splitsen de meeste lijsten zou verpesten. Het 'Aantal' bepaalt hoeveel elementen er worden geloot, van 1 tot 100. Trekt u drie winnaars uit 200 deelnemers? Plak de namen, zet het 'Aantal' op 3 en druk op 'Genereren'. Twee bedieningselementen zijn pas van toepassing wanneer het aantal 2 of meer is en blijven tot die tijd grijs: 'Zonder dubbelen', dat bepaalt of hetzelfde element twee keer getrokken kan worden, en het 'Uitvoerformaat', dat bepaalt hoe de keuzes worden gescheiden ('Elk op een nieuwe regel', 'Gescheiden door spaties' of 'Gescheiden door komma's').

Een rij knoppen binnen het vak 'Elementen' vervangt het bewerken dat u anders ergens anders zou doen. 'Laden uit bestand' haalt een lijst rechtstreeks uit een tekstbestand of CSV. 'Schudden' husselt de elementen in het vak door elkaar, 'Sorteer' zet ze in alfabetische volgorde (waarbij getallen op een natuurlijke manier worden gesorteerd en een tweede klik de volgorde omdraait), en 'Wissen' maakt het vak leeg. 'Vul met voorbeeldgegevens' voegt een korte voorbeeldlijst in zodat u de kiezer met één klik kunt proberen, terwijl 'Uitbreiden zodat de inhoud past' het vak uitvouwt om een lange lijst volledig te tonen, en 'Samenvouwen naar standaardgrootte' het weer verkleint. Onder het resultaat plaatst 'Alles kopiëren' elke trekking op uw klembord, 'Opslaan als bestand' downloadt de uitslag, en de 'Geschiedenis' bewaart uw laatste 10 trekkingen in uw browser, zodat een eerder resultaat altijd binnen handbereik is.

Hoe wordt de keuze daadwerkelijk gemaakt? Wanneer u op 'Genereren' drukt, vraagt de pagina de browser om willekeurige waarden via crypto.getRandomValues en gebruikt deze om posities in uw lijst te kiezen, in plaats van een pseudowillekeurige JavaScript-functie zoals Math.random() te gebruiken. Het omzetten van een ruwe 32-bit waarde naar een positie is waar kiezers ongemerkt de fout in gaan: de waarde delen via modulo door de lengte van de lijst is de meest voor de hand liggende aanpak, maar deze is bevooroordeeld. Tenzij de lengte van de lijst precies in 2^32 past, komen elementen aan het begin van de lijst iets vaker voor dan de rest (modulo-bias). Deze kiezer negeert daarentegen elke waarde boven het grootste exacte veelvoud van de lijstlengte en trekt opnieuw — een techniek die rejection sampling (acceptatie-verwerping) wordt genoemd. Het kost een paar extra trekkingen, maar biedt een exacte garantie in plaats van een geschatte. De positie in de lijst verandert niets: het eerste en het laatste element hebben bij elke trekking exact dezelfde kans.

'Zonder dubbelen' maakt onderscheid tussen twee wezenlijk verschillende soorten trekkingen, en de statistiek heeft voor elk een naam. Als dit is ingeschakeld, schudt de kiezer een kopie van uw lijst met het Fisher-Yates algoritme en pakt hij de bovenste elementen — alsof u lootjes trekt uit een hoed zonder ze terug te leggen. Hierdoor wordt niemand twee keer gekozen en is elke groep van die grootte even waarschijnlijk. Dat is trekken zonder terugleggen (sampling without replacement), en dit is wat u wilt gebruiken voor prijswinnaars, teams en beurten. Als dit is uitgeschakeld, wordt elke keuze onafhankelijk van de hele lijst gemaakt, waardoor hetzelfde element vaker dan eens naar voren kan komen: trekken met terugleggen (sampling with replacement). Dit is handig wanneer iedereen in elke ronde beschikbaar blijft. Geen van beide methodes is eerlijker dan de andere; ze dienen een ander doel.

Voor het menselijk oog ziet een volkomen eerlijke loting er helemaal niet eerlijk uit. Trekt u vijf namen uit tien, dan zult u regelmatig twee keuzes zien die in de oorspronkelijke lijst naast elkaar stonden, of tweemaal achter elkaar dezelfde naam als dubbelen zijn toegestaan — en dit is allemaal de normaalste zaak van de wereld. Elke trekking is onafhankelijk: eerdere keuzes hebben absoluut geen invloed op latere keuzes, en niemand is ooit aan de beurt omdat hij eraan 'toe' zou zijn. Het instinct dat het tegendeel beweert is de gokkersmisvatting (gambler's fallacy). Het is ditzelfde instinct dat ons zo slecht maakt in zelf willekeurig kiezen: als ons gevraagd wordt willekeurig te kiezen, vermijden we het eerste en laatste element, herhalen we liever geen namen en verspreiden we onze keuzes veel gelijkmatiger dan het toeval ooit doet. Een resultaat dat er verdacht netjes uitziet, draagt de vingerafdruk van een mens; echte willekeur produceert klontjes.

Waarom kiezen voor deze willekeurige kiezer?

Willekeurig loten komt overal voor waar een keuze niet ter discussie mag staan. Op school geven docenten leerlingen de beurt zonder voortrekkerij en verdelen ze de klas in projectgroepjes. In Nederland en Vlaanderen trekken we lootjes voor Sinterklaas, en verloten bedrijven prijzen via winacties op sociale media voor een publiek dat op de uitslag moet kunnen vertrouwen. Op kantoor bepalen teams de volgorde van presentaties of verdelen ze de taken die niemand wil doen. Bij onderzoek trekt men een willekeurige steekproef van dossiers voor een audit. In het gezin maakt het een einde aan de discussie over welke film er gekeken wordt of welk restaurant het wordt. De rode draad is een selectie die door iedereen achteraf kan worden uitgelegd: de loting gebruikt cryptografische willekeur, vindt volledig op uw apparaat plaats, en de 'Geschiedenis' bewaart het resultaat voor het geval iemand er later vragen over stelt.

Deze kiezer heeft een paar eerlijke beperkingen die u moet weten. Hij kan niet meer unieke elementen trekken dan uw lijst bevat (voor drie winnaars zijn minstens drie namen nodig) en hij stopt bij 1000 elementen van 200 tekens elk, met maximaal 100 keuzes per loting. 'Schudden' en 'Sorteer' werken regel voor regel, dus een door komma's gescheiden lijst die op één enkele regel is geplakt, wordt pas herschikt wanneer elk element op een nieuwe regel staat. Bovendien herschikken ze allebei het vak in plaats van de loting, die even eerlijk is in welke volgorde uw elementen ook staan. Elk element heeft qua ontwerp ook exact hetzelfde gewicht, dus voor een loting waarbij één naam dubbel moet tellen, moet die naam ook twee keer worden ingevoerd. Binnen deze grenzen is de garantie onomstotelijk: elk element in uw lijst heeft exact dezelfde kans, bij elke afzonderlijke trekking.

FAQ

Hoe kies ik een willekeurige naam uit een lijst?

Plak de namen in het vak 'Elementen' — één per regel, of gescheiden door komma's of spaties —, laat het 'Aantal' op 1 staan en druk op 'Genereren'. Er wordt onmiddellijk één naam getrokken. Verhoog het 'Aantal' naar behoefte om meerdere namen tegelijk te trekken.

Is de keuze echt eerlijk?

Ja. Elke trekking gebruikt de Web Crypto API van uw browser (crypto.getRandomValues) in combinatie met rejection sampling, wat de modulo-bias verwijdert die een naïeve implementatie zou veroorzaken. Elk element heeft exact dezelfde kans ongeacht de positie in de lijst, en bij het trekken van meerdere unieke elementen wordt een Fisher-Yates-schudding gebruikt, zodat ook elke groep van die grootte even waarschijnlijk is.

Wordt mijn lijst geüpload naar jullie server?

Nee. De gehele loting draait lokaal in uw browser: de lijst, de keuzes en de geschiedenis verlaten uw apparaat nooit. U kunt dus veilig namen, e-mailadressen of een privélijst van uw Nederlandse vereniging of Vlaamse club plakken. Ook 'Laden uit bestand' werkt lokaal — uw browser leest het bestand zelf en er wordt niets geüpload.

Kan ik een door komma's of spaties gescheiden lijst plakken in plaats van één item per regel?

Ja. Het 'Scheidingsteken' staat op 'Automatisch', wat zelfstandig het verschil ziet tussen nieuwe regels en komma's, zodat een lijst die is gekopieerd uit een spreadsheet, een chatbericht of een document in één keer werkt. Een lijst die is gescheiden door spaties vereist één extra stap — stel 'Scheidingsteken' in op 'Spatie' — omdat items zoals volledige namen zelf spaties bevatten en hierop nooit automatisch gesplitst wordt. Zet het 'Scheidingsteken' vast op 'Nieuwe regel' of 'Komma' als uw gegevens formaten door elkaar gebruiken.

Wat doet de optie 'Zonder dubbelen'?

Met 'Zonder dubbelen' ingeschakeld, is elk getrokken element uniek — alsof u lootjes trekt uit een hoed zonder ze terug te leggen, precies wat u wilt voor prijswinnaars of teams. Als het is uitgeschakeld, kan hetzelfde element meer dan eens worden gekozen, wat statistici trekken met terugleggen noemen.

Waarom zijn 'Zonder dubbelen' en het uitvoerformaat grijs gemaakt?

Omdat beide pas van toepassing zijn wanneer u meer dan één element trekt, zoals de tooltip ernaast vermeldt: 'Van toepassing wanneer het aantal 2 of meer is'. Verhoog het 'Aantal' naar 2 of hoger en ze komen beschikbaar; bij een aantal van 1 valt er immers niets te dupliceren of te scheiden.

Wat doet de optie 'Uitvoerformaat'?

Het bepaalt hoe meerdere keuzes worden weergegeven en gekopieerd: 'Elk op een nieuwe regel', 'Gescheiden door spaties' voor een snel chatberichtje, of 'Gescheiden door komma's' om ze te plakken in een spreadsheet of script. Deze optie wordt beschikbaar zodra het 'Aantal' 2 of meer is.

Wat doen de knoppen 'Schudden' en 'Sorteer'?

'Schudden' husselt de elementen in het vak 'Elementen' door elkaar, en 'Sorteer' zet ze in alfabetische volgorde waarbij getallen op natuurlijke wijze worden gesorteerd — nogmaals klikken op 'Sorteer' keert de volgorde om. Beide knoppen veranderen hoe uw lijst is opgeschreven, niet hoe de loting werkt: de kiezer is altijd even eerlijk in welke volgorde de elementen ook staan.

Hoeveel items mag de lijst bevatten en hoeveel kan ik er tegelijk trekken?

De lijst biedt plaats aan 2 tot 1000 elementen van maximaal 200 tekens elk, en één loting levert maximaal 100 keuzes op. Lege regels en omringende spaties worden genegeerd, zodat een lijst die uit een spreadsheet of document is geplakt probleemloos werkt.

Is het geschikt voor het loten van winnaars bij een winactie of tombola?

Ja, en dat is een van de meest voorkomende toepassingen, of u nu een online winactie in Nederland of een lokale tombola in België organiseert. Plak de deelnemers, zet het 'Aantal' op het aantal prijzen, laat 'Zonder dubbelen' ingeschakeld zodat niemand twee keer wint, en druk op 'Genereren'. Omdat de trekking cryptografisch veilige willekeur gebruikt en volledig op uw apparaat draait, is het proces gemakkelijk uit te leggen en bewaart de 'Geschiedenis' de uitslag voor het geval een deelnemer er later naar vraagt.

Kan ik dit gebruiken om mensen in teams te verdelen?

Ja. Stel het 'Aantal' in op de grootte van het eerste team en druk op 'Genereren' — de gekozen namen vormen team één. Verwijder deze namen vervolgens uit de lijst en herhaal dit voor het volgende team. Houd 'Zonder dubbelen' ingeschakeld zodat niemand tegelijk in twee teams belandt tijdens een sporttoernooi of een pubquiz in het plaatselijke café.

Waarom kwam dezelfde naam twee keer achter elkaar naar voren?

Omdat onafhankelijke trekkingen in herhaling vallen, en dat is precies hoe willekeur eruitziet. Elke loting negeert alle trekkingen die eraan voorafgingen. Bij een lijst van tien namen heeft dezelfde naam telkens opnieuw een kans van 1 op 10 om twee keer achter elkaar te vallen — dit is normaal en geen defect. Schakel 'Zonder dubbelen' in als u wilt dat elke keuze binnen één enkele trekking uniek is.

Onthoudt de kiezer mijn keuzes en is het gratis?

De 'Geschiedenis' bewaart uw laatste 10 trekkingen in uw eigen browser, zodat u een eerder resultaat kunt herstellen, kopiëren of verwijderen, en alles kunt wissen wanneer u maar wilt. De tool is volledig gratis zonder registratie, en aangezien er niets wordt verzonden, kunnen we uw keuzes niet zien of opslaan, zelfs al zouden we dat willen.