CodeKitHub
Generátorové nástroje

Bezplatný randomizátor seznamu

Naposledy aktualizováno:

Vložte seznam — jména, úkoly, tikety do slosování, cokoliv — po jedné položce na řádek, a zamíchejte jej do férového náhodného pořadí pomocí opravdového Fisher-Yatesova algoritmu. Zapněte režim výběru výherců a vytáhněte jen N náhodných položek, což se hodí pro výběr výherce soutěže nebo přiřazení náhodného pořadí, aniž byste odhalili celý zamíchaný seznam.

Co je tento nástroj?

Randomizátor seznamu přeuspořádá sadu položek do náhodného pořadí, nebo z ní vytáhne náhodnou podmnožinu. Tím ošemetným místem je udělat to bez zkreslení: naivní přístup jako seřazení pole pomocí náhodné porovnávací funkce vytváří zkreslené rozložení, kde jsou některá pořadí mnohem pravděpodobnější než jiná.

Tento nástroj používá algoritmus Fisher–Yates (Durstenfeld shuffle), standardní metodu pro prokazatelně rovnoměrnou náhodnou permutaci — každé možné pořadí vašeho seznamu má stejnou pravděpodobnost výskytu.

Proč ho používat?

  • Skutečně nezkreslené míchání — Fisher–Yates, nikoli běžný antipattern sort(() => Math.random() - 0.5), který výsledky zkresluje.
  • Režim výběru výherců: vytáhněte přesně N náhodných položek místo míchání celého seznamu, ideální pro slosování a soutěže.
  • Volitelné odstranění duplicit před zamícháním, pro seznamy, které mohou obsahovat náhodná opakování.
  • Funguje s libovolným textem — jména, úkoly, tikety, ceny — jedna položka na řádek.
  • Soukromé: míchání probíhá zcela ve vašem prohlížeči, nic se nenahrává.

Jak se používá

  1. Vložte svůj seznam do pole, jednu položku na řádek.
  2. Volitelně zaškrtněte „remove duplicates before shuffling“, pokud seznam může obsahovat opakování.
  3. Pro kompletní přeuspořádání jednoduše klikněte na Shuffle. Pro výběr výherců zaškrtněte možnost N položek a nastavte, kolik jich chcete vytáhnout.
  4. Zkopírujte výsledek — kliknutím na Shuffle kdykoli znovu získáte nové náhodné pořadí nebo nový výběr.

Příklad

Vstup

Alice
Bob
Charlie
Diana
Ethan

Výstup

Náhodně přeuspořádaný seznam, například Charlie, Ethan, Alice, Diana, Bob — pokaždé jiný, když kliknete na Shuffle.

S režimem výběru výherců nastaveným na 2 by stejný vstup mohl místo toho vytvořit pouze Ethan a Alice — náhodný výběr 2 položek, nikoli výřez prvních 2 položek jednoho zamíchaného pořadí.

Proč naivní míchání produkuje zkreslené výsledky

sort(() => Math.random() - 0.5) je běžný trik, který vypadá správně, ale není: spoléhá na to, že řadicí algoritmus zavolá komparátor konkrétní počet krát v konkrétním vzoru, a reálné implementace řazení to nezaručují. Praktickým důsledkem je zamíchání, kde se určitá pořadí objevují častěji než jiná — dostatečně nenápadně na to, aby to prošlo běžným pohledem, ale statisticky měřitelně napříč mnoha běhy.

Fisher–Yates se celému problému vyhýbá: místo aby požadoval na řadicím algoritmu, aby vytvořil náhodnost nepřímo, přímo prohodí každou pozici s náhodnou zbývající pozicí přesně jednou, což je prokazatelně rovnoměrné bez ohledu na implementaci řazení daného jazyka.

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

Časté dotazy

Proč nepoužít prostě array.sort(() => Math.random() - 0.5)?

Tento jednořádkový trik je známý antipattern: JavaScriptová funkce sort() nezaručuje, že se každá dvojice prvků porovná stejný počet krát, takže výsledné pořadí je měřitelně zkreslené ve prospěch určitých permutací — některé položky pak s vyšší pravděpodobností skončí blízko začátku nebo konce, než by odpovídalo skutečné náhodnosti. Fisher–Yates se tomuto problému díky své konstrukci zcela vyhýbá a přesně tento algoritmus tento nástroj implementuje.

Je pořadí po zamíchání skutečně nezkreslené?

Ano. Fisher–Yates projde seznam jednou a v každém kroku prohodí aktuální položku s rovnoměrně náhodnou položkou ze zbývající nezamíchané části. To je matematicky dokázáno jako produkce každého možného pořadí se stejnou pravděpodobností, za předpokladu dobrého zdroje náhodnosti (JavaScriptové Math.random()).

Jaký je rozdíl mezi míchacím režimem a režimem výběru výherců?

Režim míchání přeuspořádá každou položku ve vašem seznamu a zobrazí vám je všechny, jen v novém pořadí. Režim výběru výherců vytáhne náhodně jen N položek a zobrazí pouze ty — užitečné, když chcete vybrat pevný počet výherců nebo vzorků, aniž byste odhalili celý přeuspořádaný seznam.

Mohu to použít pro skutečné slosování cen nebo tombolu?

Ano, pro neformální soutěže a slosování to funguje dobře, protože náhodnost je skutečně rovnoměrná. Pro právně regulovanou soutěž s peněžitými cenami zkontrolujte místní předpisy — některé jurisdikce vyžadují konkrétní auditovatelný proces losování.

Změní odstranění duplicit můj původní seznam?

Ne — deduplikace ovlivňuje pouze výstup po zamíchání, a jen když je zaškrtávací pole aktivní. Váš vstupní seznam zůstává přesně tak, jak jste jej napsali, takže můžete tuto možnost přepínat a míchat znovu bez opětovného psaní.

Související nástroje