Nasumični izbor s liste

Zalijepite bilo koju listu — imena, zadatke ili ideje — i pustite alat da napravi pošten nasumični izbor. Svako izvlačenje se odvija lokalno u vašem pregledniku, pa vaša lista nikad ne napušta vaš uređaj.

Pritisnite Generiši za izvlačenje
Razdjelnik se određuje automatski, ali ga možete odabrati ručno u nastavku.
Napredne opcije

Trebate izvući dobitnika nagradne igre, prozvati učenika ili odlučiti ko će oprati suđe? Ovaj besplatni alat za nasumični izbor bira pošteno sa bilo koje liste koju zalijepite. Unesite svoje podatke u okvir „Stavke“ — po jedan u svakom redu ili odvojene zarezima — postavite koliko rezultata želite pomoću polja „Broj“ i pritisnite „Generiši“. Lista zahtijeva najmanje dva unosa i može primiti do 1000 stavki, svaku dužine do 200 znakova.

Svako izvlačenje se obavlja direktno u vašem pregledniku pomoću Web Crypto API-ja (crypto.getRandomValues), koji pruža kriptografski jake nasumične vrijednosti na osnovu osnovne nasumičnosti vašeg operativnog sistema. Vaša lista se nikad ne šalje na server, nikad se ne bilježi i mi je nikad ne vidimo — što je ovdje važnije nego kod većine generatora, jer ljudi obično lijepe spiskove klijenata, školske dnevnike ili imena kolega. Dugme „Učitaj iz datoteke“ ispunjava isto obećanje: vaš preglednik čita datoteku i lokalno ispunjava okvir, bez ikakvog prijenosa na internet.

Opcije su prilagođene listama koje ljudi zapravo imaju. Polje „Razdjelnik“ je unaprijed postavljeno na „Automatski“, što samo razlikuje prelaze u novi red od zareza i prepoznaje format vaše liste, tako da podaci kopirani iz tabele, poruke ili dokumenta funkcionišu bez potrebe za preoblikovanjem. Zaključajte ga na „Novi red“, „Zarez“ ili „Razmak“ kada vaši podaci miješaju formate — i imajte na umu da je odabir opcije „Razmak“ uvijek namjeran i nikad se ne dešava automatski, jer unosi poput punih imena prirodno sadrže razmake, pa bi njihovo automatsko razdvajanje pokvarilo više lista nego što bi popravilo. Polje „Broj“ određuje koliko se stavki izvlači, od 1 do 100. Izvlačite tri dobitnika među 200 učesnika? Zalijepite listu, postavite „Broj“ na 3 i pritisnite „Generiši“. Dvije kontrole primjenjuju se tek kada je broj 2 ili više i do tada ostaju neaktivne: prekidač „Bez ponavljanja“, koji odlučuje da li se ista stavka može izvući dva puta, i „Format rezultata“, koji određuje kako su izvučene stavke razdvojene — „Svaki u novom redu“, „Odvojeno razmacima“ ili „Odvojeno zarezima“.

Niz dugmadi unutar okvira „Stavke“ vrši uređivanje koje biste inače radili negdje drugo. Dugme „Učitaj iz datoteke“ ubacuje listu direktno iz obične tekstualne ili CSV datoteke. Dugme „Shuffle“ mijenja redoslijed unosa u okviru, „Sortiraj“ ih slaže abecedno s prirodnim poretkom brojeva, a drugi klik obrnuto, dok „Očisti“ potpuno prazni okvir. Dugme „Umetni primjer“ dodaje kratku probnu listu da jednim klikom testirate alat, dok „Proširi na cijelu listu“ povećava okvir kako bi prikazao dugačku listu u cijelosti, a „Skupi“ ga vraća na zadanu veličinu. Ispod rezultata, „Kopiraj sve“ stavlja svako izvlačenje u međuspremnik, „Sačuvaj u datoteku“ ih upisuje na vaš disk, a „Historija“ čuva posljednjih 10 izvlačenja u pregledniku, pa je povratak na raniji rezultat udaljen samo jedan klik.

Kako se zapravo vrši izvlačenje? Kada pritisnete „Generiši“, stranica traži od preglednika nasumične vrijednosti putem crypto.getRandomValues i koristi ih za odabir pozicija u vašoj listi, umjesto da se oslanja na pseudo-nasumičnu JavaScript funkciju Math.random(). Pretvaranje sirove 32-bitne vrijednosti u poziciju na listi je mjesto gdje slični alati neprimjetno griješe: dijeljenje po modulu te vrijednosti sa dužinom liste je najočigledniji, ali i pristrasan pristup. Razlog tome je što, osim ako se dužina ne dijeli s 2^32 bez ostatka, unosi pri vrhu liste izlaze nešto češće od ostalih. Taj propust naziva se modulo bias (modulna pristrasnost), i on je mjerljiv, a ne teoretski. Ovaj alat umjesto toga odbacuje svaku vrijednost koja prelazi najveći tačni višekratnik dužine liste i izvlači ponovo — tehnikom koja se naziva rejection sampling (uzorkovanje s odbacivanjem). To košta nekoliko dodatnih izvlačenja, ali daje preciznu umjesto približne garancije. Pozicija na listi ništa ne mijenja: prvi i posljednji unos nose istu vjerovatnoću u svakom izvlačenju.

Prekidač „Bez ponavljanja“ razdvaja dvije potpuno različite vrste izvlačenja, a statistika ima ime za svaku. Kada je uključen, alat promiješa kopiju vaše liste Fisher-Yates algoritmom i uzima unose s vrha — što je isto kao da izvlačite papiriće iz šešira bez vraćanja, tako da niko nije izabran dvaput, a svaka grupa te veličine je jednako moguća. To je uzorkovanje bez vraćanja (sampling without replacement), i upravo to vam treba za dodjelu nagrada, formiranje timova i redoslijed igranja. Kada je isključen, svaki izbor se donosi nezavisno s cijele liste, pa isti unos može izaći više puta — to je uzorkovanje s vraćanjem (sampling with replacement), koje vam treba kada svi ostaju u igri za svaki krug, recimo u ponovljenim izvlačenjima ili brzom statističkom uzorku. Nijedan način nije pošteniji od drugog; oni jednostavno odgovaraju na različite potrebe.

Pošteno izvlačenje uopšte ne bi trebalo izgledati pošteno. Izvucite pet imena od deset i redovno ćete viđati dva izbora koja su stajala jedan do drugog na originalnoj listi, ili isto ime dvaput zaredom ako su ponavljanja dozvoljena — i svaki od tih slučajeva je sasvim normalan. Svako izvlačenje je nezavisno: raniji rezultati nemaju apsolutno nikakav uticaj na kasnije, i niko nikad ne dođe „na redu“ za dobitak samo zato što mu je vrijeme. Instinkt koji tvrdi suprotno zove se kockarska zabluda (gambler's fallacy). To je isti onaj instinkt zbog kojeg smo loši u nasumičnom biranju — kad nas zamole da biramo na sreću, izbjegavamo prvi i posljednji unos, trudimo se ne ponavljati isto ime i širimo izbore mnogo ravnomjernije nego što to slučajnost ikada radi. Sumnjivo uredan rezultat je otisak ljudske ruke; prava slučajnost proizvodi grupisanja.

Zašto odabrati ovaj alat za nasumični izbor?

Nasumično izvlačenje se koristi svugdje gdje izbor mora izdržati preispitivanje. Nastavnici prozivaju učenike bez favorizovanja i dijele razred u projektne grupe. Streameri i marketinški stručnjaci izvlače pobjednike nagradnih igara pred publikom koja mora vjerovati rezultatu. Menadžeri dodjeljuju zadatke za koje se niko ne javlja dobrovoljno, a timovi dogovaraju redoslijed prezentacija ili dežurstva. Istraživači biraju nasumični uzorak zapisa za reviziju. Porodice rješavaju prepirke o tome šta gledati, a gladna raja bira kafić. Zajednička nit je selekcija koju svako može objasniti kasnije: izvlačenje se oslanja na kriptografsku nasumičnost, dešava se isključivo na vašem uređaju, a „Historija“ čuva rezultat ako neko kasnije posumnja u njega.

Ovaj alat ima nekoliko poštenih ograničenja koja vrijedi znati. Ne može izvući više različitih stavki nego što vaša lista sadrži — tri nagrade zahtijevaju najmanje tri imena — i staje na 1000 unosa od po 200 znakova, s do 100 izbora u jednom izvlačenju. Funkcije „Shuffle“ i „Sortiraj“ rade red po red, tako da će lista odvojena zarezima i zalijepljena u jedan red biti ispremiješana tek kada postane jedan unos po redu; i jedna i druga preuređuju tekst u okviru, a ne samo izvlačenje, koje je podjednako pošteno kakav god redoslijed bio. Svaki unos namjerno nosi apsolutno jednaku težinu, pa za izvlačenje gdje jedno ime vrijedi dvostruko trebate to ime upisati dvaput. Unutar tih granica garancija je čvrsta — svaka stavka na vašoj listi ima potpuno jednaku šansu pri apsolutno svakom izvlačenju.

FAQ

Kako nasumično izvući ime sa liste?

Zalijepite imena u okvir „Stavke“ — po jedno u redu, ili odvojena zarezima ili razmacima — ostavite „Broj“ na 1 i pritisnite „Generiši“. Jedno ime se izvlači odmah. Za više imena odjednom, povećajte polje „Broj“ na vrijednost koju trebate.

Je li izvlačenje zaista pošteno?

Jeste. Svako izvlačenje koristi Web Crypto API vašeg preglednika (crypto.getRandomValues) zajedno s tehnikom rejection sampling (uzorkovanje s odbacivanjem), što otklanja modulnu pristrasnost koja bi se provukla kod naivnih rješenja. Svaki unos ima apsolutno istu vjerovatnoću bez obzira na njegovu poziciju, a za izvlačenje više različitih stavki primjenjuje se Fisher-Yates algoritam miješanja, pa je i svaka grupa te veličine podjednako moguća.

Da li se moja lista učitava na vaš server?

Ne. Cijeli proces se odvija lokalno u vašem pregledniku: lista, izvlačenja i historija nikada ne napuštaju vaš uređaj, pa je potpuno sigurno lijepiti imena, e-mailove ili privatne spiskove. Dugme „Učitaj iz datoteke“ također je lokalno — vaš preglednik sam čita datoteku i ništa se ne otprema.

Mogu li zalijepiti listu odvojenu zarezima ili razmacima umjesto jednog unosa po redu?

Da. „Razdjelnik“ je podešen na „Automatski“, što samo razlikuje prelaze u novi red od zareza, pa lista kopirana iz tabele, chat poruke ili dokumenta radi upravo onakva kakva jest. Za listu odvojenu razmacima potreban je jedan dodatni korak — prebacite „Razdjelnik“ na „Razmak“ — jer unosi poput punih imena sami po sebi sadrže razmake i automatsko razdvajanje na njima nikad ne bi bilo ispravno. Zaključajte „Razdjelnik“ na „Novi red“ ili „Zarez“ ako vaši podaci miješaju formate.

Čemu služi prekidač „Bez ponavljanja“?

Kada je uključena opcija „Bez ponavljanja“, svaka izvučena stavka je drugačija — baš kao izvlačenje papirića iz šešira bez njihovog vraćanja, što vam treba kada birate dobitnike ili timove. Kad je isključena, isti unos se može izvući više puta, što statističari nazivaju uzorkovanje s vraćanjem.

Zašto su opcije „Bez ponavljanja“ i „Format rezultata“ zasivljene?

Zato što se obje primjenjuju samo kada izvlačite više od jednog unosa, kako kaže oblačić pored njih: „Primjenjuje se samo kada je broj veći od 1.“ Povećajte polje „Broj“ na 2 ili više i obje će postati dostupne; kod izvlačenja samo jedne stavke ne postoji ništa što bi se moglo ponoviti ni razdvojiti.

Šta radi opcija „Format rezultata“?

Ona određuje kako se prikazuje i kopira više izvučenih rezultata: „Svaki u novom redu“, „Odvojeno razmacima“ za brzu poruku na chatu, ili „Odvojeno zarezima“ za lijepljenje u tabelu ili skriptu. Postaje dostupna kada „Broj“ iznosi 2 ili više.

Šta rade dugmad „Shuffle“ i „Sortiraj“?

„Shuffle“ mijenja redoslijed unosa unutar okvira „Stavke“, dok ih „Sortiraj“ uređuje po abecedi s prirodnim poretkom brojeva — a drugi klik obrće redoslijed. Oba dugmeta mijenjaju samo kako je vaša lista ispisana, a ne kako izvlačenje funkcioniše: alat je podjednako pošten bez obzira u kojem su redoslijedu unosi.

Koliko stavki može sadržavati lista i koliko mogu izvući odjednom?

Lista prihvata od 2 do 1000 unosa, svaki dužine do 200 znakova, a jedno izvlačenje donosi do 100 izbora. Prazni redovi i razmaci na krajevima se zanemaruju, tako da lista zalijepljena direktno iz tabele ili dokumenta besprijekorno radi.

Je li prikladan za izvlačenje dobitnika u nagradnim igrama?

Jeste, to mu je jedna od najčešćih namjena. Zalijepite imena učesnika, postavite „Broj“ na količinu nagrada, ostavite uključeno „Bez ponavljanja“ kako niko ne bi dobio dvije nagrade i kliknite „Generiši“. Pošto izvlačenje koristi kriptografsku nasumičnost i odvija se isključivo na vašem uređaju, proces je lako objasniti, a „Historija“ čuva rezultat ako neko kasnije izrazi sumnju.

Mogu li ga koristiti za podjelu ljudi u timove?

Da. Postavite „Broj“ na veličinu prvog tima i pritisnite „Generiši“ — izvučena imena čine prvi tim. Uklonite ih sa liste i ponovite postupak za sljedeći. Zadržite uključenu opciju „Bez ponavljanja“ kako niko ne bi istovremeno završio u dva tima.

Zašto je isto ime izašlo dvaput zaredom?

Zato što se nezavisna izvlačenja ponavljaju i prava nasumičnost upravo tako izgleda. Svako izvlačenje ignoriše sva ona koja su mu prethodila, pa u listi od deset imena, izlazak istog imena dvaput zaredom ima šansu 1 od 10 svaki put — to je uobičajeno, a ne greška. Uključite „Bez ponavljanja“ ukoliko vam je potrebno da unutar jednog izvlačenja svaki izbor bude drugačiji.

Da li alat pamti moja izvlačenja i je li besplatan?

„Historija“ čuva vaših posljednjih 10 izvlačenja u vašem vlastitom pregledniku, tako da možete vratiti, kopirati ili obrisati raniji rezultat, te isprazniti historiju kad god želite. Alat je potpuno besplatan i ne zahtijeva registraciju, a budući da se nikakvi podaci ne prenose, mi ne bismo mogli vidjeti ni spremiti vaše izbore čak ni kada bismo to htjeli.