CodeKitHub
Generátorové nástroje

Generátor losování jmen

Naposledy aktualizováno:

Losovat jména na Secret Santa ručně naráží na matematický problém: čistě náhodné zamíchání může snadno přiřadit někoho sám sobě, a opakované losování „dokud to nevyjde“ už není náhodné. Tento nástroj to řeší pořádně — zadejte jména všech účastníků a nástroj spočítá derangement (zamíchání s matematickou zárukou, že nikdo nedostane sám sebe), a každý výsledek schová za tlačítko „odhalit“, aby si každý mohl zkontrolovat jen svého obdarovaného na sdílené obrazovce.

Co je tento nástroj?

Derangement je matematický pojem: přeuspořádání množiny, kde žádný prvek nezůstane na svém původním místě. U výměny dárků to znamená zamíchat jména tak, aby nikdo nebyl spárován sám se sebou — přesně to, co obyčejné náhodné zamíchání typu 'seřaď náhodně' negarantuje.

Nástroj generuje derangement opakovaným zamícháním seznamu a kontrolou podmínky, přičemž pro náhodnost používá kryptograficky bezpečný zdroj `crypto.getRandomValues()` místo běžného `Math.random()`.

Tlačítko „odhalit“ řeší praktický problém skupinového losování: kdyby se ukázala všechna přiřazení najednou na obrazovce, překvapení by bylo zničené pro každého. Skrytí za tlačítkem umožní kolovat jedním zařízením nebo sdílet obrazovku, aniž by kdokoli viděl cizí přiřazení.

Proč ho používat?

  • Organizujete Vánoční Secret Santa v rodině a nechcete losovat papírky z klobouku, kde se často stane, že si někdo vytáhne sám sebe.
  • Firemní vánoční večírek s 15 kolegy — sdílíte notebook po místnosti a každý si klikne jen na své jméno.
  • Přátelé plánují výměnu dárků na dálku přes video hovor — sdílíte obrazovku a každý si zapamatuje jen svého přiděleného.
  • Chcete mít jistotu, že žádné jméno nevyjde samo na sebe, aniž byste to museli ručně kontrolovat a losovat znovu.
  • Vše proběhne v prohlížeči, takže jména účastníků nikam neodesíláte a nezůstávají uložená na serveru.

Jak se používá

  1. Zadejte jména všech účastníků, jedno pod druhé.
  2. Klikněte na „Vylosovat“ — nástroj spočítá spravedlivé přiřazení (derangement).
  3. Sdílejte obrazovku nebo předávejte zařízení — každý si klikne na tlačítko u svého jména.
  4. Po kliknutí se odhalí, komu daná osoba dárek nosí, ostatní přiřazení zůstávají skrytá.

Příklad

Vstup

Jména: Petr, Jana, Tomáš, Lucie

Výstup

Petr → Lucie, Jana → Petr, Tomáš → Jana, Lucie → Tomáš

Každé jméno je spárováno s jiným, nikdy sám se sebou — to je podstata derangementu.

Derangement vs. obyčejné zamíchání

Obyčejné náhodné zamíchání pole (např. `Math.random()` v porovnávací funkci) občas nechá prvek na jeho původní pozici — u losování dárků by to znamenalo, že si někdo koupí dárek sám sobě. Derangement tuto možnost matematicky vylučuje.

Související nástroje

Další generátory pro plánování a náhodu.

→ Generátor hesel

Jak losovat ve skupině bez prozrazení

Nejlepší způsob je předávat jedno zařízení kolem stolu nebo sdílet obrazovku na videohovoru — každý si klikne jen na tlačítko se svým jménem, přečte si přiřazení potichu (nebo do soukromé zprávy) a předá dál, aniž by ostatní viděli výsledek.

Časté dotazy

Co je to derangement a proč na tom záleží?

Derangement je zamíchání, kde nikdo nezůstane na svém místě. U losování dárků to znamená, že se nikdy nemůže stát, že by si někdo vytáhl sám sebe — na rozdíl od obyčejného náhodného zamíchání.

Kolik lidí můžu přidat?

Prakticky neomezeně — nástroj funguje pro malé rodinné skupiny i pro desítky kolegů ve firmě.

Vidí ostatní, komu jsem přiřazen já?

Ne, pokud kliknete jen na tlačítko u svého jména. Ostatní přiřazení zůstávají skrytá, dokud si je daná osoba sama neodhalí.

Ukládá se seznam jmen někam na server?

Ne, celý výpočet probíhá lokálně v prohlížeči — jména se nikam neodesílají.

Můžu losování zopakovat, pokud se mi výsledek nelíbí?

Ano, kliknutím na nové losování se vygeneruje nový spravedlivý derangement, jen se tím samozřejmě přemažou už odhalená přiřazení.

Funguje to i pro dva lidi?

Ne — u dvou lidí existuje jen jedno možné vzájemné přiřazení, takže to nedává smysl jako tajné losování; ideální je od tří a více účastníků.

Je losování opravdu náhodné, nebo se dá odhadnout?

Používá kryptograficky bezpečný generátor náhodných čísel prohlížeče, takže je stejně nepředvídatelné jako generátor hesel.

Co když chci vyloučit určité páry (např. manžele)?

Aktuálně nástroj vylučuje jen sebe-přiřazení, ne vlastní páry. Pokud vám vyjde nežádoucí dvojice, jednoduše losování zopakujte.

Musí všichni vidět stejnou obrazovku najednou?

Ne, obrazovku můžete sdílet postupně nebo předávat zařízení — každý odhalí jen svůj výsledek a pak předá dál.

Související nástroje