CodeKitHub
Generátorové nástroje

Bezplatný generátor náhodných zoznamov

Naposledy aktualizované:

Vložte zoznam — mená, úlohy, žrebovacie lístky, čokoľvek — jednu položku na riadok, a zamiešajte ho do férového náhodného poradia pomocou skutočného Fisher-Yatesovho algoritmu. Zapnite režim výberu víťazov, ak chcete vytiahnuť len N náhodných položiek — hodí sa na výber výhercu súťaže alebo pridelenie náhodného poradia bez toho, aby ste odhalili celý zamiešaný zoznam.

Čo je tento nástroj?

Náhodný generátor zoznamov premieňa množinu položiek na náhodné poradie, alebo z nej vyberá náhodnú podmnožinu. Háčik je urobiť to bez skreslenia: naivný postup ako zoradenie poľa pomocou náhodnej porovnávacej funkcie vytvára skreslené rozdelenie, kde sú niektoré poradia oveľa pravdepodobnejšie než iné.

Tento nástroj používa algoritmus Fisher–Yates (Durstenfeld shuffle), štandardnú metódu na preukázateľne rovnomernú náhodnú permutáciu — každé možné poradie vášho zoznamu má rovnakú šancu, že sa objaví.

Prečo ho používať?

  • Skutočne nezaujaté miešanie — Fisher–Yates, nie bežný antivzor sort(() => Math.random() - 0.5), ktorý skresľuje výsledky.
  • Režim výberu víťazov: vytiahnite presne N náhodných položiek namiesto miešania celého zoznamu — ideálne na žrebovania a súťaže.
  • Voliteľné odstránenie duplicít pred miešaním, pre zoznamy, ktoré môžu obsahovať náhodné opakovania.
  • Funguje s akýmkoľvek textom — mená, úlohy, lístky, ceny — jedna položka na riadok.
  • Súkromné: miešanie prebieha celé vo vašom prehliadači, nič sa neodosiela.

Ako sa používa

  1. Vložte svoj zoznam do poľa, jednu položku na riadok.
  2. Voliteľne zaškrtnite "odstrániť duplicity pred miešaním", ak zoznam môže obsahovať opakovania.
  3. Pri kompletnom premiešaní stačí kliknúť na Zamiešať. Pri výbere víťazov zaškrtnite možnosť N položiek a nastavte, koľko ich chcete vytiahnuť.
  4. Skopírujte výsledok — kliknutím na Zamiešať kedykoľvek znova získate nové náhodné poradie alebo nový výber.

Príklad

Vstup

Alica
Boris
Cyril
Diana
Erik

Výstup

Náhodne premiešaný zoznam, napríklad Cyril, Erik, Alica, Diana, Boris — pri každom kliknutí na Zamiešať iný.

V režime výberu víťazov nastavenom na 2 by ten istý vstup mohol namiesto toho vygenerovať len Erika a Alicu — náhodný výber 2 položiek, nie 2-položkový výrez z jedného zamiešaného poradia.

Prečo naivné miešanie produkuje skreslené výsledky

sort(() => Math.random() - 0.5) je bežný trik, ktorý vyzerá správne, no nie je: spolieha sa na to, že algoritmus triedenia zavolá porovnávaciu funkciu konkrétny počet krát v konkrétnom vzore, a reálne implementácie triedenia to nezaručujú. Praktickým dôsledkom je miešanie, kde sa určité poradia objavujú častejšie než iné — dosť jemne na to, aby to prešlo pri letmom pohľade, ale štatisticky merateľné pri mnohých opakovaniach.

Fisher–Yates celý problém obchádza: namiesto toho, aby žiadal algoritmus triedenia o náhodnosť nepriamo, priamo vymení každú pozíciu s náhodnou zostávajúcou pozíciou presne raz, čo je preukázateľne rovnomerné bez ohľadu na implementáciu triedenia v danom jazyku.

Generátor náhodných čísel · Generátor UUID

Časté otázky

Prečo nepoužiť jednoducho array.sort(() => Math.random() - 0.5)?

Tento jednoriadkový trik je známy antivzor: JavaScriptová funkcia sort() nezaručuje, že každý pár prvkov bude porovnaný rovnaký počet krát, takže výsledné poradie je merateľne skreslené v prospech určitých permutácií — niektoré položky nakoniec skončia bližšie k začiatku alebo koncu častejšie, než by odpovedalo skutočnej náhode. Fisher–Yates sa tomuto problému vyhýba úplne svojou konštrukciou a je to algoritmus, ktorý tento nástroj skutočne implementuje.

Je miešanie naozaj nezaujaté?

Áno. Fisher–Yates prejde zoznamom raz a pri každom kroku vymení aktuálnu položku s rovnomerne náhodnou položkou zo zvyšnej nezamiešanej časti. Je matematicky dokázané, že to pri dobrom zdroji náhodnosti (JavaScriptová Math.random()) produkuje každé možné poradie s rovnakou pravdepodobnosťou.

Aký je rozdiel medzi miešaním a režimom výberu víťazov?

Režim miešania premieša každú položku vášho zoznamu a zobrazí všetky, len v novom poradí. Režim výberu víťazov vytiahne len N náhodných položiek a zobrazí len tie — hodí sa, keď chcete vybrať pevný počet víťazov alebo vzoriek bez odhalenia celého premiešaného zoznamu.

Môžem toto použiť na skutočné žrebovanie cien alebo súťaž?

Áno, pre neformálne súťaže a žrebovania toto funguje dobre, keďže náhodnosť je skutočne rovnomerná. Pri právne regulovanej lotérii s peňažnými cenami si overte miestne predpisy — niektoré jurisdikcie vyžadujú konkrétny auditovateľný postup žrebovania.

Zmení odstránenie duplicít môj pôvodný zoznam?

Nie — deduplikácia ovplyvňuje len zamiešaný výstup, a len keď je začiarkavacie políčko zapnuté. Váš vstupný zoznam zostáva presne taký, aký ste ho napísali, takže môžete túto možnosť prepínať a znova miešať bez opätovného písania.

Súvisiace nástroje