CodeKitHub
Generatorverktøy

Gratis listetilfeldiggjører

Sist oppdatert:

Lim inn en liste — navn, oppgaver, loddtrekningsdeltakere, hva som helst — én per linje, og stokk den til en rettferdig, tilfeldig rekkefølge ved hjelp av en ekte Fisher-Yates-shuffle. Slå på vinnertrekker-modus for å trekke bare N tilfeldige elementer, nyttig for å trekke en giveaway-vinner eller tildele en tilfeldig rekkefølge uten å avsløre hele den stokkede listen.

Hva er dette verktøyet?

En listetilfeldiggjører omorganiserer et sett med elementer i en tilfeldig rekkefølge, eller trekker et tilfeldig utvalg fra det. Det vanskelige er å gjøre dette uten skjevhet: en naiv tilnærming som å sortere en array med en tilfeldig sammenligningsfunksjon gir en skjev fordeling der noen rekkefølger er langt mer sannsynlige enn andre.

Dette verktøyet bruker Fisher–Yates (Durstenfeld)-shuffle-algoritmen, standardmetoden for en bevist jevnt fordelt tilfeldig permutasjon — enhver mulig rekkefølge av listen din er like sannsynlig å dukke opp.

Hvorfor bruke det?

  • Genuint upartisk stokking — Fisher–Yates, ikke det vanlige sort(() => Math.random() - 0.5)-antimønsteret som skjevfordeler resultater.
  • Vinnertrekker-modus: trekk nøyaktig N tilfeldige elementer i stedet for å stokke hele listen, ideelt for loddtrekninger og giveaways.
  • Valgfri fjerning av duplikater før stokking, for lister som kan ha utilsiktede gjentakelser.
  • Fungerer med all tekst — navn, oppgaver, billetter, premier — ett element per linje.
  • Privat: stokkingen skjer helt i nettleseren din, ingenting lastes opp.

Slik bruker du det

  1. Lim inn listen din i boksen, ett element per linje.
  2. Kryss eventuelt av for «fjern duplikater før stokking» hvis listen kan inneholde gjentakelser.
  3. For en full omstokking, klikk bare Stokk. For å trekke vinnere, kryss av for N-elementer-alternativet og angi hvor mange som skal trekkes.
  4. Kopier resultatet — klikk Stokk igjen når som helst for en ny tilfeldig rekkefølge eller en ny trekning.

Eksempel

Inndata

Alice
Bob
Charlie
Diana
Ethan

Resultat

En tilfeldig omstokket liste som Charlie, Ethan, Alice, Diana, Bob — forskjellig hver gang du klikker Stokk.

Med vinnertrekker-modus satt til 2 kan samme input i stedet gi bare Ethan og Alice — en tilfeldig trekning av 2 elementer, ikke et utsnitt av 2 elementer fra én stokket rekkefølge.

Hvorfor en naiv stokking gir skjeve resultater

sort(() => Math.random() - 0.5) er et vanlig triks som ser riktig ut, men ikke er det: det er avhengig av at sorteringsalgoritmen kaller sammenligningsfunksjonen et bestemt antall ganger i et bestemt mønster, og virkelige sorteringsimplementasjoner garanterer ikke dette. Den praktiske effekten er en stokking der visse rekkefølger dukker opp oftere enn andre — subtilt nok til å bestå et flyktig blikk, men statistisk målbart over mange kjøringer.

Fisher–Yates unngår hele problemet: i stedet for å be en sorteringsalgoritme indirekte produsere tilfeldighet, bytter den direkte hver posisjon med en tilfeldig gjenværende posisjon nøyaktig én gang, noe som er bevist jevnt fordelt uansett hvilken sorteringsimplementasjon det underliggende språket har.

Tilfeldig tallgenerator · UUID-generator

Ofte stilte spørsmål

Hvorfor ikke bare bruke array.sort(() => Math.random() - 0.5)?

Den one-lineren er et velkjent antimønster: JavaScripts sort() garanterer ikke at hvert par elementer sammenlignes like mange ganger, så den resulterende rekkefølgen er målbart skjev mot visse permutasjoner — noen elementer havner oftere nær starten eller slutten enn ekte tilfeldighet ville gitt. Fisher–Yates unngår dette helt av konstruksjon, og det er algoritmen dette verktøyet faktisk implementerer.

Er stokkerekkefølgen virkelig upartisk?

Ja. Fisher–Yates går gjennom listen én gang, og bytter ved hvert steg det gjeldende elementet med et jevnt tilfeldig valgt element fra den gjenværende ustokkede delen. Dette er matematisk bevist å produsere enhver mulig rekkefølge med lik sannsynlighet, gitt en god kilde til tilfeldighet (JavaScripts Math.random()).

Hva er forskjellen mellom stokking og vinnertrekker-modus?

Stokke-modus omorganiserer hvert element i listen din og viser dem alle, bare i en ny rekkefølge. Vinnertrekker-modus trekker bare N elementer tilfeldig og viser kun dem — nyttig når du vil velge et fast antall vinnere eller utvalg uten å avsløre en hel omstokket liste.

Kan jeg bruke dette til en ekte premietrekning eller loddtrekning?

Ja, for uformelle giveaways og trekninger fungerer dette godt siden tilfeldigheten er genuint jevn. For en juridisk regulert konkurranse med pengepremier, sjekk din lokale lovgivning — enkelte jurisdiksjoner krever en spesifikk, kontrollerbar trekningsprosess.

Endrer fjerning av duplikater originallisten min?

Nei — deduplisering påvirker bare det stokkede resultatet, og bare når avkrysningsboksen er aktivert. Inndatalisten din forblir nøyaktig som du skrev den, slik at du kan slå alternativet av og på og stokke på nytt uten å skrive alt inn igjen.

Relaterte verktøy