CodeKitHub
Generatorverktyg

Gratis listslumpare

Senast uppdaterad:

Klistra in en lista — namn, uppgifter, tävlingsbidrag, vad som helst — en rad per post, och blanda den i en rättvis slumpmässig ordning med en riktig Fisher-Yates-blandning. Slå på vinnarläget för att dra ut bara N slumpmässiga poster, praktiskt för att utse en vinnare i en utlottning eller tilldela en slumpmässig ordning utan att exponera hela den blandade listan.

Vad är detta verktyg?

En listslumpare ordnar om en samling poster i en slumpmässig sekvens, eller drar ett slumpmässigt urval från den. Det knepiga är att göra det utan att snedvrida resultatet: ett naivt tillvägagångssätt som att sortera en array med en slumpmässig jämförelsefunktion ger en skev fördelning där vissa ordningar är mycket mer sannolika än andra.

Det här verktyget använder Fisher–Yates-algoritmen (Durstenfeld-varianten), standardmetoden för en bevisat likformig slumpmässig permutation — varje möjlig ordning av din lista är lika sannolik.

Varför använda det?

  • Genuint opartisk blandning — Fisher–Yates, inte det vanliga sort(() => Math.random() - 0.5)-antimönstret som snedvrider resultaten.
  • Vinnarläge: dra exakt N slumpmässiga poster istället för att blanda hela listan, perfekt för utlottningar och tävlingar.
  • Valfri borttagning av dubbletter före blandning, för listor som kan innehålla oavsiktliga upprepningar.
  • Fungerar med all text — namn, uppgifter, biljetter, priser — en post per rad.
  • Privat: blandningen sker helt i din webbläsare, ingenting laddas upp.

Så använder du det

  1. Klistra in din lista i rutan, en post per rad.
  2. Kryssa valfritt i "ta bort dubbletter före blandning" om listan kan innehålla upprepningar.
  3. För en full omordning, klicka bara på Blanda. För att dra vinnare, kryssa i N-poster-alternativet och ställ in hur många som ska dras.
  4. Kopiera resultatet — klicka på Blanda igen när som helst för en ny slumpmässig ordning eller dragning.

Exempel

Inmatning

Alice
Bob
Charlie
Diana
Ethan

Resultat

En slumpmässigt omordnad lista som Charlie, Ethan, Alice, Diana, Bob — olika varje gång du klickar på Blanda.

Med vinnarläge inställt på 2 kan samma indata istället ge bara Ethan och Alice — en slumpmässig dragning av 2 poster, inte en 2-posters skiva av en blandad ordning.

Varför en naiv blandning ger skeva resultat

sort(() => Math.random() - 0.5) är ett vanligt trick som ser korrekt ut men inte är det: det förlitar sig på att sorteringsalgoritmen anropar jämförelsefunktionen ett specifikt antal gånger i ett specifikt mönster, och verkliga sorteringsimplementationer garanterar inte det. Den praktiska effekten är en blandning där vissa ordningar förekommer oftare än andra — tillräckligt subtilt för att passera en snabb blick, men statistiskt mätbart över många körningar.

Fisher–Yates kringgår hela problemet: istället för att be en sorteringsalgoritm producera slumpmässighet indirekt, byter den direkt varje position mot en slumpmässig återstående position exakt en gång, vilket är bevisat likformigt oavsett det underliggande språkets sorteringsimplementation.

Slumptalsgenerator · UUID-generator

Vanliga frågor

Varför inte bara använda array.sort(() => Math.random() - 0.5)?

Den enradsraden är ett välkänt antimönster: JavaScripts sort() garanterar inte att varje par av element jämförs lika många gånger, så den resulterande ordningen blir mätbart skev mot vissa permutationer — vissa poster hamnar oftare nära början eller slutet än vad äkta slumpmässighet skulle ge. Fisher–Yates undviker detta helt genom sin konstruktion, och det är algoritmen som det här verktyget faktiskt implementerar.

Är blandningsordningen verkligen opartisk?

Ja. Fisher–Yates går igenom listan en gång, och vid varje steg byter den den aktuella posten mot en likformigt slumpmässig post från den återstående oblandade delen. Det är matematiskt bevisat att detta ger varje möjlig ordning med lika sannolikhet, givet en bra slumpkälla (JavaScripts Math.random()).

Vad är skillnaden mellan att blanda och vinnarläge?

Blandningsläge ordnar om varje post i din lista och visar dig alla, bara i en ny ordning. Vinnarläge drar bara N poster slumpmässigt och visar bara dem — praktiskt när du vill välja ett fast antal vinnare eller stickprov utan att avslöja en hel omordnad lista.

Kan jag använda det här för en riktig prisutlottning eller tävling?

Ja, för informella utlottningar och dragningar fungerar det här bra eftersom slumpmässigheten är genuint likformig. För en juridiskt reglerad tävling med penningpriser, kontrollera dina lokala regler — vissa jurisdiktioner kräver en specifik granskningsbar dragningsprocess.

Ändrar borttagning av dubbletter min ursprungliga lista?

Nej — avdubblering påverkar bara den blandade utdatan, och bara när kryssrutan är aktiverad. Din indatalista förblir exakt som du skrev den, så du kan växla alternativet och blanda om utan att skriva om något.

Relaterade verktyg