Potřebujete vylosovat výherce soutěže, vyvolat žáka nebo rozhodnout, kdo vynese koš? Tento bezplatný online náhodný výběr spravedlivě vylosuje položku z jakéhokoli seznamu. Vložte svá data do pole „Položky“ — po jednom na řádek nebo oddělená čárkami — v poli „Počet“ nastavte, kolik jich chcete, a stiskněte „Generovat“. Seznam vyžaduje alespoň dvě položky a pojme jich až 1000, přičemž každá může mít délku až 200 znaků.
Každý výběr probíhá přímo ve vašem prohlížeči pomocí Web Crypto API (crypto.getRandomValues), které poskytuje kryptograficky bezpečné náhodné hodnoty ze systémových procesů náhodnosti. Váš seznam se nikdy neodesílá na server, nikam se neukládá a my ho nikdy neuvidíme — to je zde důležitější než u většiny jiných generátorů, protože lidé většinou vkládají seznamy zákazníků, třídní výkazy nebo jména kolegů. Tlačítko „Načíst ze souboru“ dodržuje stejný slib: prohlížeč soubor sám přečte a pole vyplní lokálně, aniž by se cokoli nahrávalo na internet.
Možnosti jsou navrženy pro seznamy, které lidé skutečně mají. „Oddělovač“ je nastaven na „Automaticky“, což samo rozpozná zalomení řádků a čárky, takže seznam zkopírovaný z tabulky, chatu nebo dokumentu funguje bez úprav. Pokud vaše data formáty míchají, uzamkněte jej na „Nový řádek“, „Čárka“ nebo „Mezera“ — a pamatujte, že „Mezera“ je vždy záměrná volba, nikoliv automatická, protože položky jako celá jména obsahují vlastní mezery a jejich automatické rozdělení by více seznamů zničilo než opravilo. „Počet“ určuje, kolik položek se má vylosovat, od 1 do 100. Losujete tři výherce ze 200 účastníků? Vložte soutěžící, nastavte „Počet“ na 3 a stiskněte „Generovat“. Dvě nastavení platí pouze v případě, že je počet 2 a více, a do té doby zůstávají zašedlá: „Bez opakování“, které rozhoduje, zda může být stejná položka vylosována dvakrát, a „Formát výstupu“, který určuje, jak jsou vybrané položky odděleny — „Po jednom na řádek“, „Odděleno mezerami“ nebo „Odděleno čárkami“.
Řada tlačítek uvnitř pole „Položky“ umožňuje provádět úpravy, které byste jinak museli dělat jinde. „Načíst ze souboru“ vloží seznam přímo z prostého textového souboru nebo CSV. „Zamíchat“ změní pořadí položek v poli, „Seřadit“ je uspořádá abecedně s přirozeným řazením čísel (druhé kliknutí pořadí obrátí) a „Vymazat“ pole vyprázdní. Tlačítko „Vložit příklad“ vloží ukázkový seznam, abyste si nástroj mohli vyzkoušet jedním kliknutím, zatímco „Rozbalit na celý seznam“ pole roztáhne tak, aby ukázalo dlouhý seznam celý, a „Sbalit“ ho vrátí zpět. Pod výsledkem „Kopírovat vše“ uloží všechny vybrané položky do schránky, „Uložit do souboru“ je stáhne do počítače a „Historie“ uchová posledních 10 losování ve vašem prohlížeči, takže předchozí výsledek je vzdálený jen jedno kliknutí.
Jak samotné losování probíhá? Když stisknete „Generovat“, stránka požádá prohlížeč o náhodné hodnoty přes crypto.getRandomValues a použije je k výběru pozic ve vašem seznamu, místo aby spoléhala na pseudonáhodnou funkci JavaScriptu, jako je Math.random(). Převod hrubé 32bitové hodnoty na pozici je krok, kde mnoho nástrojů v tichosti chybuje: použití hodnoty modulo délka seznamu je zřejmý, avšak zkreslující přístup, protože pokud délka seznamu nedělí číslo 2^32 beze zbytku, položky blízko začátku seznamu se budou objevovat o něco častěji než ostatní. Tento nedostatek se nazývá modulo zkreslení (modulo bias) a je spíše měřitelný než teoretický. Tento nástroj místo toho zahodí každou hodnotu, která přesahuje největší přesný násobek délky seznamu, a losuje znovu — technika známá jako zamítací vzorkování (rejection sampling). Stojí to sice několik losování navíc, ale získáte přesnou záruku místo přibližné. Pozice v seznamu nic nemění: první i poslední položka má při každém losování naprosto stejnou pravděpodobnost.
Přepínač „Bez opakování“ odděluje dva zcela odlišné druhy losování, pro které má statistika vlastní pojmy. Když je zapnutý, nástroj zamíchá kopii vašeho seznamu pomocí algoritmu Fisher-Yates a vybere položky seshora — to je to samé jako losování lístků z klobouku bez jejich vracení, takže nikdo není vybrán dvakrát a každá skupina dané velikosti je stejně pravděpodobná. Říká se tomu výběr bez vracení (sampling without replacement) a přesně to chcete pro výherce cen, týmy nebo pořadí tahů. Když je vypnutý, každý výběr probíhá nezávisle z celého seznamu, takže se stejná položka může objevit vícekrát — to je výběr s vracením (sampling with replacement), který potřebujete, když všichni zůstávají ve hře v každém kole, jako u opakovaných tahů loterie nebo rychlého statistického vzorku. Žádný z těchto režimů není spravedlivější než ten druhý; jen odpovídají na různé otázky.
Spravedlivé losování nemá vypadat spravedlivě. Vylosujte pět jmen z deseti a pravidelně uvidíte dvě položky, které v původním seznamu stály vedle sebe, nebo stejné jméno dvakrát po sobě, pokud je povoleno opakování. To vše je naprosto běžné. Každé losování je nezávislé: předchozí výběry nemají sebemenší vliv na ty pozdější a nikdo nikdy nemá na výhru „nárok“. Instinkt, který tvrdí opak, je omyl hazardního hráče (gambler's fallacy) a je to ten samý instinkt, kvůli kterému jsme my sami špatní v náhodném výběru — když jsme požádáni, abychom vybírali náhodně, vyhýbáme se první a poslední položce, neopakujeme stejné jméno a své volby rozmisťujeme mnohem rovnoměrněji, než to dělá náhoda. Výsledek, který vypadá podezřele úhledně, je lidským otiskem prstu; skutečná náhoda vytváří shluky.
Proč zvolit tento nástroj pro náhodný výběr?
- Losování pouze v prohlížeči: váš seznam se čte ve vašem zařízení a nikam se neodesílá
- Náhodnost přes Web Crypto API: kryptograficky bezpečné, žádné Math.random()
- Žádné modulo zkreslení: zamítací vzorkování udržuje pravděpodobnost všech položek stejnou
- Libovolný formát seznamu: po jednom na řádek, s čárkou nebo mezerou, bez úprav
- Režim „Bez opakování“: losujte výherce nebo týmy, aniž by byl někdo vybrán dvakrát
- Až 1000 položek a až 100 výběrů v jednom losování
- Vestavěné nástroje: načtení ze souboru, míchání, řazení, vymazání, ukázková data
- Historie a Uložit do souboru: uchovejte si záznam o losování, které možná budete muset obhájit
- Bez omezení a zdarma: žádná registrace, žádné limity použití, nic na našich serverech
Náhodný výběr se objevuje všude tam, kde musí rozhodnutí ustát případné dotazy. Učitelé v Česku vyvolávají žáky bez upřednostňování a dělí třídu do projektových skupin. Streameři a marketéři losují výherce před publikem, které musí výsledku věřit. Manažeři rozdělují úkoly, do kterých se nikdo nehrne, a týmy určují pořadí prezentací nebo to, kdo drží pohotovost. Výzkumníci si tahají náhodný vzorek záznamů k auditu. Rodiny ukončují dohadování o tom, na co se budou dívat, a hladová parta vybírá restauraci. Společným jmenovatelem je výběr, který může kdokoliv zpětně vysvětlit: losování používá kryptografickou náhodnost, odehrává se výhradně na vašem zařízení a „Historie“ uchová výsledek, kdyby se na něj někdo později zeptal.
Tento nástroj má několik upřímných omezení, o kterých je dobré vědět. Nemůže vylosovat více unikátních položek, než kolik váš seznam obsahuje — tři výherci vyžadují alespoň tři jména — a zastaví se na 1000 položkách o 200 znacích, přičemž v jednom losování zvládne až 100 výběrů. Tlačítka „Zamíchat“ a „Seřadit“ fungují po řádcích, takže seznam oddělený čárkami vložený na jeden řádek se přeskládá, až když je rozdělen na jednu položku na řádek. Obě navíc mění uspořádání v poli, a ne v samotném losování, které je naprosto spravedlivé bez ohledu na to, v jakém pořadí vaše položky jsou. Každá položka má také od návrhu naprosto stejnou váhu, takže při losování, kde má mít jedno jméno dvojnásobnou šanci, musí být v seznamu uvedeno dvakrát. V rámci těchto limitů je záruka silná — každá jednotlivá položka ve vašem seznamu má naprosto stejnou šanci, a to při každém losování.