Slumpmässig väljare

Klistra in vilken lista som helst — namn, uppgifter eller idéer — och låt väljaren dra rättvist. Varje dragning körs i din webbläsare, så din lista lämnar aldrig din enhet.

Tryck på Generera
Avgränsaren identifieras automatiskt, men du kan välja en nedan.
Avancerade alternativ

Behöver du dra en vinnare i en tävling, välja vilken elev som ska svara, eller bestämma vem som är fikaansvarig? Denna gratis, slumpmässiga väljare drar rättvist från vilken lista du än klistrar in. Lägg in dina poster i fältet ”Objekt” — en per rad, eller separerade med kommatecken — ställ in hur många du vill ha med ”Antal”, och tryck på ”Generera”. En lista kräver minst två poster och rymmer upp till 1000, där varje kan vara upp till 200 tecken lång.

Varje val görs direkt i din webbläsare med hjälp av Web Crypto API (crypto.getRandomValues), som ger kryptografiskt säkra slumpvärden från ditt operativsystems underliggande slumpprocesser. Din lista skickas aldrig till en server, sparas aldrig i en logg, och ses aldrig av oss — och det är viktigare här än på de flesta andra väljare, eftersom det folk klistrar in oftast är en kundlista, en klasslista eller namnen på kollegor. Knappen ”Ladda från fil” håller samma löfte: din webbläsare läser filen och fyller fältet lokalt, och ingenting laddas upp någonstans.

Alternativen är gjorda för de listor folk faktiskt har. ”Avgränsare” står på ”Automatiskt”, vilket skiljer på radbrytningar och kommatecken på egen hand, så en lista som kopierats från ett kalkylblad, ett chattmeddelande eller ett dokument fungerar utan att du behöver formatera om den. Lås den till ”Radbrytning”, ”Komma” eller ”Mellanslag” när din data blandar format — och observera att ”Mellanslag” alltid är ett medvetet val och aldrig automatiskt, eftersom poster som fullständiga namn innehåller egna mellanslag, och om man automatiskt delade upp dem skulle det förstöra fler listor än det fixade. ”Antal” bestämmer hur många poster som ska dras, från 1 till 100. Ska du dra tre vinnare bland 200 deltagare? Klistra in deltagarna, ställ in ”Antal” på 3, och tryck på ”Generera”. Två inställningar gäller endast när antalet är 2 eller mer och är utgråade fram tills dess: ”Inga dubbletter”, som avgör om samma post kan dras två gånger, och ”Utdataformat”, som bestämmer hur de valda posterna separeras — ”En per rad”, ”Separerade med mellanslag” eller ”Separerade med kommatecken”.

En rad knappar inuti fältet ”Objekt” låter dig göra ändringar du annars skulle göra någon annanstans. ”Ladda från fil” hämtar en lista direkt från en vanlig textfil eller CSV-fil. ”Blanda” ändrar ordningen på posterna i fältet, ”Sortera” ordnar dem alfabetiskt med siffror i naturlig ordning (ett klick till vänder på ordningen), och ”Rensa” tömmer fältet. Knappen ”Fyll med exempeldata” lägger in en kort exempellista så att du kan prova väljaren med ett klick, medan ”Expandera för att passa innehåll” vecklar ut fältet för att visa en lång lista i sin helhet och ”Komprimera till standardstorlek” fäller ihop det igen. Under resultatet lägger ”Kopiera alla” varje valt objekt på dina urklipp, ”Spara till fil” sparar ner dem till datorn, och ”Historik” behåller dina 10 senaste dragningar i webbläsaren, så att ett tidigare resultat bara är ett klick bort.

Hur görs dragningen egentligen? När du trycker på ”Generera”, ber sidan webbläsaren om slumpvärden via crypto.getRandomValues och använder dem för att välja positioner i din lista, i stället för att gå genom en pseudoslumpmässig JavaScript-funktion som Math.random(). Att göra om ett rått 32-bitarsvärde till en position är där många väljare i tysthet gör fel: att ta värdet modulo listans längd är den uppenbara metoden och den som skapar skevhet, eftersom om inte listans längd går jämnt upp i 2^32, kommer poster nära början av listan att dyka upp aningen oftare än resten. Den bristen kallas modulo-skevhet (modulo bias), och den är mätbar snarare än teoretisk. Den här väljaren förkastar i stället varje värde som överstiger den största exakta multipeln av listlängden och drar på nytt — en teknik som kallas förkastningssampling (rejection sampling). Det kostar några extra dragningar och ger en exakt garanti i stället för en ungefärlig. Positionen i listan förändrar ingenting: den första posten och den sista har exakt samma sannolikhet i varje dragning.

”Inga dubbletter” skiljer mellan två genuint olika typer av dragningar, och statistiken har ett namn för var och en. När den är på, blandar väljaren en kopia av din lista med Fisher-Yates-algoritmen och plockar posterna från toppen — samma sak som att dra lotter ur en hatt utan att lägga tillbaka dem, så att ingen dras två gånger och varje grupp av den storleken är lika sannolik. Det kallas dragning utan återläggning (sampling without replacement), och det är vad du vill ha för pristagare, lag och turordning. När den är av görs varje val oberoende av hela listan, så att samma post kan dyka upp mer än en gång — dragning med återläggning (sampling with replacement), vilket är vad du vill ha när alla förblir valbara i varje omgång, som vid upprepade lottdragningar eller ett snabbt statistiskt urval. Ingen av metoderna är mer rättvis än den andra; de svarar på olika frågor.

En rättvis dragning ska inte se rättvis ut. Dra fem namn av tio och du kommer regelbundet att se två val som stod bredvid varandra i den ursprungliga listan, eller samma namn två gånger i rad när dubbletter är tillåtna, och allt detta är helt normalt. Varje dragning är oberoende: tidigare val har ingen som helst inverkan på senare val, och ingen har någonsin en vinst ”till godo”. Instinkten som påstår motsatsen är spelares felslut (gambler's fallacy), och det är samma instinkt som gör oss dåliga på att själva välja slumpmässigt — om vi blir ombedda att välja på måfå undviker vi den första och den sista posten, vi undviker att upprepa ett namn, och vi sprider våra val mycket jämnare än vad slumpen någonsin gör. Ett resultat som ser misstänkt snyggt ut är ett mänskligt fingeravtryck; äkta slumpmässighet skapar klumpar.

Varför välja den här slumpmässiga väljaren?

Slumpmässiga dragningar dyker upp varhelst ett val måste kunna tåla att ifrågasättas. Lärare väljer elever utan att favorisera och delar in klassen i projektgrupper. Streamers och marknadsförare drar vinnare i giveaways inför en publik som måste tro på resultatet. Chefer delar ut uppgifterna som ingen anmäler sig frivilligt till, och team bestämmer ordningen för presentationer eller vem som har bakjour. Forskare drar ett slumpmässigt urval av poster för granskning. Familjer avslutar bråket om vad man ska titta på, och en hungrig grupp väljer restaurang. Den gemensamma nämnaren är ett val som vem som helst kan förklara efteråt: dragningen använder kryptografisk slumpmässighet, den sker helt och hållet på din enhet, och ”Historik” behåller resultatet ifall någon frågar om det senare.

Denna väljare har några få ärliga begränsningar som är värda att känna till. Den kan inte dra fler unika poster än vad din lista innehåller — tre vinnare kräver minst tre namn — och den stannar vid 1000 poster på 200 tecken vardera, med upp till 100 val i en dragning. ”Blanda” och ”Sortera” fungerar rad för rad, så en kommaseparerad lista inklistrad på en enda rad omordnas först när den delats upp till en post per rad; och båda dessa knappar ändrar ordningen i fältet snarare än i själva dragningen, som är lika rättvis oavsett vilken ordning dina poster står i. Varje post har också exakt samma vikt i systemet, så om ett namn ska räknas dubbelt måste det namnet listas två gånger. Inom dessa gränser är garantin stark — varje enskild post i din lista har exakt samma chans, i varje enskild dragning.

FAQ

Hur drar jag ett slumpmässigt namn från en lista?

Klistra in namnen i fältet ”Objekt” — ett per rad, eller separerade med kommatecken eller mellanslag — låt ”Antal” stå kvar på 1 och tryck på ”Generera”. Ett namn dras omedelbart. För flera namn på en gång, höj ”Antal” till det du behöver.

Är valet verkligen rättvist?

Ja. Varje val använder din webbläsares Web Crypto API (crypto.getRandomValues) tillsammans med förkastningssampling (rejection sampling), vilket tar bort den modulo-skevhet en enklare kodning skulle införa. Varje post har exakt samma sannolikhet oavsett sin position i listan, och att dra flera unika poster använder en Fisher-Yates-blandning, så varje grupp av den storleken är också lika sannolik.

Laddas min lista upp till er server?

Nej. Hela dragningen körs lokalt i din webbläsare: listan, valen och historiken lämnar aldrig din enhet, så det är helt säkert att klistra in namn, e-postadresser eller vilken privat lista som helst. ”Ladda från fil” är också lokalt — din webbläsare läser filen själv och ingenting laddas upp.

Kan jag klistra in en lista separerad med kommatecken eller mellanslag istället för ett objekt per rad?

Ja. ”Avgränsare” står på ”Automatiskt”, vilket på egen hand skiljer på radbrytningar och kommatecken, så att en lista som kopierats ur ett kalkylblad, ett chattmeddelande eller ett dokument fungerar precis som den är. En lista separerad med mellanslag kräver ett extra steg — ställ in ”Avgränsare” på ”Mellanslag” — eftersom poster som fullständiga namn själva innehåller mellanslag och aldrig delas vid dem automatiskt. Lås ”Avgränsare” till ”Radbrytning” eller ”Komma” om din data blandar format.

Vad gör inställningen ”Inga dubbletter”?

Med ”Inga dubbletter” påslagen är varje dragen post unik — som att dra lotter ur en hatt utan att lägga tillbaka dem, vilket är vad du vill ha för pristagare eller lag. Med den avslagen kan samma post väljas mer än en gång, vilket statistiker kallar dragning med återläggning.

Varför är kontrollerna för ”Inga dubbletter” och ”Utdataformat” utgråade?

Eftersom båda endast gäller när du drar mer än en post, precis som tipset bredvid dem säger: ”Gäller endast när antalet är större än 1.” Höj ”Antal” till 2 eller mer så blir båda tillgängliga; vid antal 1 finns det ingenting att duplicera och ingenting att separera.

Vad gör alternativet ”Utdataformat”?

Det bestämmer hur flera val visas och kopieras: ”En per rad”, ”Separerade med mellanslag” för ett snabbt chattmeddelande, eller ”Separerade med kommatecken” för att klistra in i ett kalkylblad eller ett skript. Det blir tillgängligt när ”Antal” är 2 eller mer.

Vad gör knapparna ”Blanda” och ”Sortera”?

”Blanda” ändrar ordningen på posterna inuti fältet ”Objekt”, och ”Sortera” ordnar dem alfabetiskt med siffror i naturlig ordning — ett nytt klick vänder på ordningen. Båda ändrar hur din lista är skriven, inte hur dragningen fungerar: väljaren är lika rättvis oavsett vilken ordning posterna står i.

Hur många objekt kan listan innehålla, och hur många kan jag välja på en gång?

Listan rymmer från 2 till 1000 poster, var och en upp till 200 tecken, och en dragning ger upp till 100 val. Tomma rader och omgivande mellanslag ignoreras, så en lista inklistrad från ett kalkylblad eller ett dokument fungerar som den är.

Är den lämplig för att välja vinnare i giveaways eller lottdragningar?

Ja, och det är ett av de vanligaste användningsområdena. Klistra in deltagarna, ställ in ”Antal” på antalet priser, behåll ”Inga dubbletter” påslagen så att ingen vinner två gånger, och tryck på ”Generera”. Eftersom dragningen använder kryptografiskt säker slumpmässighet och körs helt och hållet på din enhet, är processen enkel att förklara, och ”Historik” behåller resultatet ifall en deltagare ifrågasätter det senare.

Kan jag använda den för att dela in folk i lag?

Ja. Ställ in ”Antal” på det första lagets storlek och tryck på ”Generera” — de valda namnen är lag ett. Ta bort dem från listan och upprepa för nästa lag. Behåll ”Inga dubbletter” påslagen så att ingen hamnar i två lag samtidigt.

Varför kom samma namn upp två gånger i rad?

Eftersom oberoende dragningar upprepar sig, och det är så slumpmässighet ser ut. Varje dragning struntar i alla dragningar före den, så i en lista med tio namn har samma namn som dras två gånger i rad en 1 på 10 chans varje gång — det är normalt, inte ett fel. Slå på ”Inga dubbletter” om du behöver att varje val inom en enskild dragning ska vara unikt.

Minns väljaren mina val, och är det gratis?

”Historik” behåller dina 10 senaste dragningar i din egen webbläsare, så att du kan återställa, kopiera eller radera ett tidigare resultat, och rensa alltihop närhelst du vill. Verktyget är helt gratis och kräver ingen registrering, och eftersom ingenting skickas över nätet, skulle vi varken kunna se eller lagra dina val ens om vi ville.