Nasumični odabir s popisa

Zalijepite bilo koji popis — imena, zadatke ili ideje — i prepustite alatu pošten nasumični odabir. Izvlačenje se odvija unutar vašeg preglednika, a podaci nikada ne napuštaju vaš uređaj.

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

Trebate li izvući dobitnika nagradne igre, prozvati učenika ili dogovoriti tko baca smeće? Ovaj besplatni internetski alat provodi pošteno nasumično izvlačenje s bilo kojeg popisa koji zalijepite. Unesite svoje kandidate u okvir „Stavke” — svakoga u novi red ili odvojene zarezima — odredite koliko rezultata želite u polju „Broj” i pritisnite „Generiraj”. Popis mora sadržavati barem dva imena i može primiti do 1000 stavki, pri čemu svaka može biti duga do 200 znakova.

Svako se izvlačenje odvija izravno u vašem pregledniku koristeći Web Crypto API (crypto.getRandomValues), koji pruža kriptografski snažne nasumične vrijednosti povlačeći ih iz sustava na kojem radite. Vaš se popis nikada ne šalje na poslužitelj, nigdje se ne bilježi i mi ga nikada ne vidimo — što je ovdje važnije nego kod većine drugih generatora, budući da korisnici obično unose popis klijenata, imenik razreda ili imena kolega. Gumb „Učitaj iz datoteke” drži se istog obećanja: vaš preglednik čita datoteku i lokalno popunjava okvir, a da se pritom baš ništa ne prenosi na internet.

Opcije su prilagođene popisima kakve korisnici zaista imaju. Opcija „Razdjelnik” zadano stoji na „Automatski”, što samostalno razlikuje prijelome reda i zareze te prepoznaje koji od njih vaš popis koristi, pa podaci kopirani iz proračunske tablice, poruke u chatu ili dokumenta funkcioniraju bez ikakvog dodatnog oblikovanja. Zaključajte ga na „Novi red”, „Zarez” ili „Razmak” kada vaši podaci miješaju formate — uz napomenu da je opcija „Razmak” uvijek namjeran izbor i nikada se ne primjenjuje automatski, jer stavke poput imena i prezimena ionako sadrže razmake pa bi njihovo automatsko razdvajanje uništilo više popisa nego što bi ih popravilo. Polje „Broj” određuje koliko će se stavki izvući, u rasponu od 1 do 100. Izvlačite li tri dobitnika među 200 natjecatelja? Zalijepite njihova imena, postavite „Broj” na 3 i pritisnite „Generiraj”. Dvije postavke postaju dostupne tek kada je broj 2 ili veći, a do tada ostaju zasivljene: prekidač „Bez ponavljanja”, koji odlučuje može li se ista stavka izvući dva puta, te „Format rezultata”, koji određuje kako će odabrane stavke biti odvojene — „Svaki u novom redu”, „Odvojeno razmacima” ili „Odvojeno zarezima”.

Niz gumba unutar okvira „Stavke” obavlja uređivanje koje biste inače morali raditi negdje drugdje. Gumb „Učitaj iz datoteke” povlači popis izravno iz obične tekstualne ili CSV datoteke. Gumb „Nasumično” miješa redoslijed unosa u okviru, „Poredaj” ih slaže abecednim i prirodnim brojevnim redoslijedom dok ih drugi klik okreće naopako, a „Očisti” u potpunosti prazni okvir. Gumb „Umetni primjer” ubacuje kratki ogledni popis kako biste alat mogli isprobati jednim klikom, dok ga „Proširi na cijeli popis” razvlači kako bi u cijelosti prikazao duge popise, a „Skupi” ga vraća u početnu veličinu. Ispod rezultata, „Kopiraj sve” prebacuje svaki odabir u vaš međuspremnik, „Spremi u datoteku” ih zapisuje na vaš uređaj, a „Povijest” čuva vaših zadnjih 10 izvlačenja unutar preglednika, tako da je svaki prijašnji rezultat dostupan jednim klikom.

Kako se točno provodi odabir? Kad pritisnete „Generiraj”, stranica traži od preglednika nasumične vrijednosti putem funkcije crypto.getRandomValues i koristi ih za biranje pozicija s vašeg popisa, umjesto oslanjanja na pseudo-nasumičnu JavaScript funkciju Math.random(). Pretvaranje sirove 32-bitne vrijednosti u poziciju na popisu mjesto je gdje ovakvi alati neprimjetno griješe: dijeljenje te vrijednosti s dužinom popisa i uzimanje ostatka (modulo) najočitiji je, ali i pristran pristup. Razlog leži u tome što će se — osim kada je broj 2^32 bez ostatka djeljiv dužinom popisa — stavke pri početku popisa pojavljivati neznatno češće od ostalih. Taj se nedostatak naziva pristranost ostatka (modulo bias) i on je potpuno mjerljiv, a ne samo teoretski. Ovaj alat umjesto toga odbacuje svaku vrijednost koja prelazi najveći točni višekratnik dužine popisa i provodi novo izvlačenje — što je tehnika poznata kao uzorkovanje s odbacivanjem (rejection sampling). Takav pristup košta nekoliko dodatnih izvlačenja u pozadini, ali donosi posve točno jamstvo umjesto tek približnog. Pozicija na popisu ne mijenja baš ništa: prva i posljednja stavka imaju potpuno jednaku vjerojatnost u svakom izvlačenju.

Prekidač „Bez ponavljanja” razdvaja dvije potpuno različite vrste izvlačenja, a statistika za svaku ima poseban naziv. Kada je uključen, alat miješa kopiju vašeg popisa pomoću Fisher-Yatesovog algoritma i uzima stavke s vrha — baš kao kad izvlačite papiriće iz šešira bez da ih vraćate natrag, pa nitko ne može biti izvučen dvaput i svaka grupa te veličine jednako je vjerojatna. To se naziva uzorkovanje bez vraćanja (sampling without replacement) i upravo je ono što vam treba za dobitnike nagrada, formiranje timova ili redoslijed poteza. Kada je isključen, svaki se odabir vrši neovisno iz cijelog popisa, pa se ista stavka može pojaviti više puta — što predstavlja uzorkovanje s vraćanjem (sampling with replacement), potrebno kada svi ostaju kandidati u svakom krugu, kao kod uzastopnih izvlačenja ili brzog statističkog uzorka. Nijedan od ovih načina nije pošteniji od onog drugog; oni jednostavno odgovaraju na različite potrebe.

Pošteno izvlačenje ne bi trebalo izgledati pošteno. Izvucite pet imena od deset ponuđenih i redovito ćete dobiti dva odabira koji su se na izvornom popisu nalazili jedan pored drugog, ili dvaput zaredom isto ime ako su ponavljanja dozvoljena — i svaki od tih slučajeva sasvim je uobičajen. Svako je izvlačenje neovisno: prijašnji odabiri nemaju apsolutno nikakav utjecaj na one kasnije i ničiji red za pobjedu nikada ne postaje „dužan” doći samo zato što je prošlo puno vremena. Nagon koji nas tjera da vjerujemo u suprotno zove se kockarska zabluda (gambler's fallacy), a to je isti onaj nagon zbog kojeg smo jako loši u samostalnom nasumičnom biranju — kada nas se traži da biramo nasumce, izbjegavamo prvu i zadnju stavku, trudimo se ne ponoviti ime i raspoređujemo svoje odabire puno ravnomjernije nego što to istinska slučajnost ikada čini. Rezultat koji izgleda sumnjivo uredno zapravo je otisak čovjeka; prava nasumičnost proizvodi nakupine.

Zašto odabrati ovaj alat za nasumično izvlačenje?

Nasumično odabiranje pojavljuje se svugdje gdje neka odluka mora preživjeti propitkivanje. Učitelji u Hrvatskoj prozivaju učenike bez favoriziranja i dijele razred u grupe za projekte. Streameri i marketingaši izvlače pobjednike nagradnih igara i ždrijebova pred publikom koja mora vjerovati u rezultat. Menadžeri dodjeljuju zadatke za koje se nitko ne javlja dobrovoljno, a timovi odlučuju o redoslijedu prezentacija. Istraživači povlače nasumični uzorak zapisa za reviziju. Obitelji prekidaju svađu oko toga što će gledati na televiziji, a gladno društvo odabire u koju će pizzeriju ići. Zajednička nit svih ovih situacija jest odabir koji svatko naknadno može objasniti: ovo izvlačenje koristi kriptografsku slučajnost, u potpunosti se odvija na vašem uređaju, a značajka „Povijest” čuva rezultat ako netko kasnije pita za njega.

Važno je znati nekoliko poštenih ograničenja ovog alata. Alat ne može izvući više različitih stavki nego što ih vaš popis sadrži — za tri dobitnika potrebna su barem tri imena — i zaustavlja se na maksimalnih 1000 stavki, od kojih svaka smije imati do 200 znakova, s najviše 100 odabira po izvlačenju. Gumbi „Nasumično” i „Poredaj” rade red po red, pa će se popis odvojen zarezima koji je zalijepljen u jednom jedinom redu presložiti tek nakon što ga pretvorite u format jedna stavka po redu; i oba mijenjaju samo redoslijed u okviru umjesto samog izvlačenja, koje je jednako pošteno kakav god bio redoslijed vaših unosa. Svaka stavka prema dizajnu nosi potpuno jednaku težinu, pa izvlačenje u kojemu jedno ime treba vrijediti dvostruko zahtijeva da se to ime i upiše dva puta. Unutar tih granica, jamstvo je izuzetno čvrsto — svaka pojedinačna stavka na vašem popisu ima potpuno iste izglede pri apsolutno svakom izvlačenju.

FAQ

Kako mogu odabrati nasumično ime s popisa?

Zalijepite imena u okvir „Stavke” — svako u svoj red, ili odvojeno zarezima odnosno razmacima — ostavite „Broj” na 1 i pritisnite „Generiraj”. Jedno se ime izvlači istog trena. Želite li odabrati više imena odjednom, povećajte polje „Broj” na željenu vrijednost.

Je li odabir uistinu pošten?

Da. Svaki odabir koristi Web Crypto API vašeg preglednika (crypto.getRandomValues) zajedno s tehnikom rejection sampling, koja uklanja pristranost ostatka (modulo bias) koju bi naivna implementacija inače unijela. Svaki unos ima apsolutno jednaku vjerojatnost neovisno o njegovoj poziciji na popisu, a prilikom izvlačenja više različitih stavki primjenjuje se Fisher-Yatesovo miješanje, kako bi i svaka grupa te veličine bila jednako vjerojatna.

Učitava li se moj popis na vaš poslužitelj?

Ne. Cijeli se proces izvlačenja odvija lokalno u vašem pregledniku: popis, odabrane stavke i povijest nikada ne napuštaju vaš uređaj, pa je potpuno sigurno zalijepiti imena, adrese e-pošte ili bilo koji drugi privatni popis. Opcija „Učitaj iz datoteke” također je lokalna — sam preglednik čita datoteku i baš ništa se ne šalje na internet.

Mogu li zalijepiti popis odvojen zarezima ili razmacima umjesto svake stavke u novom redu?

Da. „Razdjelnik” je postavljen na „Automatski”, čime samostalno razlikuje prijelome reda od zareza, pa popis kopiran iz tablice, chata ili dokumenta radi upravo onakav kakav jest. Popis odvojen razmacima zahtijeva jedan dodatni korak — postavite „Razdjelnik” na „Razmak” — zato što unosi poput punog imena i prezimena ionako sadrže razmake unutar sebe i nikada se neće automatski prelomiti po njima. Zaključajte „Razdjelnik” na „Novi red” ili „Zarez” ako vaši podaci miješaju različite formate.

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

Kada je opcija „Bez ponavljanja” uključena, svaka izvučena stavka bit će drugačija — baš kao kad izvlačite papiriće iz šešira bez vraćanja, što je poželjno prilikom određivanja dobitnika nagrada ili timova. Kada je isključena, ista se stavka može odabrati više od jednog puta, što statističari nazivaju uzorkovanje s vraćanjem (sampling with replacement).

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

Zato što se obje primjenjuju isključivo onda kada izvlačite više od jedne stavke, baš kao što savjet pored njih kaže: „Vrijedi samo kada je broj veći od 1.” Povećajte „Broj” na 2 ili više i obje će postati dostupne; kod broja 1 ne postoji ništa što bi se ponovilo ili odvojilo.

Što točno radi opcija „Format rezultata”?

Ona određuje kako će višestruki odabiri biti prikazani i kopirani: „Svaki u novom redu”, „Odvojeno razmacima” za brzu poruku u chatu, ili „Odvojeno zarezima” za izravno prenošenje u proračunsku tablicu ili skriptu. Postaje dostupna čim „Broj” iznosi 2 ili više.

Čemu služe gumbi „Nasumično” i „Poredaj”?

Gumb „Nasumično” miješa redoslijed zapisa unutar okvira „Stavke”, a „Poredaj” ih slaže abecednim redom uz prirodni slijed brojeva — ponovni klik na isti gumb okreće taj redoslijed. Oba gumba samo mijenjaju način na koji je vaš popis zapisan u okviru, a ne sam mehanizam izvlačenja: alat jamči jednako pošten rezultat bez obzira u kojem se poretku vaše stavke nalaze.

Koliko stavki popis može sadržavati i koliko ih mogu odabrati odjednom?

Vaš popis može sadržavati od 2 do 1000 stavki, svaku dugu do 200 znakova, a jedno izvlačenje donosi do 100 odabira odjednom. Prazni redovi i razmaci na rubovima teksta automatski se zanemaruju, pa popis zalijepljen iz Excela ili Worda savršeno radi bez prepravaka.

Je li alat prikladan za izvlačenje dobitnika nagradnih igara ili ždrijebova?

Da, i to mu je jedna od najčešćih namjena. Zalijepite sudionike, postavite „Broj” na količinu nagrada koje dijelite, ostavite uključenu opciju „Bez ponavljanja” kako nitko ne bi dobio dvije nagrade i pritisnite „Generiraj”. Budući da ovo izvlačenje koristi kriptografski snažnu slučajnost i provodi se u potpunosti na vašem uređaju, proces je jednostavno objasniti, a „Povijest” će sačuvati rezultat ako ga netko od sudionika naknadno dovede u pitanje.

Mogu li alat koristiti za podjelu ljudi u timove?

Da. Postavite „Broj” na veličinu prvog tima i pritisnite „Generiraj” — izvučena imena čine prvi tim. Uklonite ih s popisa i ponovite radnju za sljedeću grupu. Ostavite opciju „Bez ponavljanja” uključenom kako nitko ne bi istovremeno završio u dva različita tima.

Zašto je isto ime izvučeno dvaput zaredom?

Zato što se neovisna izvlačenja uvijek mogu ponoviti i upravo tako izgleda prava nasumičnost. Svako novo izvlačenje potpuno ignorira ona prethodna, pa na popisu od deset imena isti ishod dvaput zaredom ima vjerojatnost 1 naprema 10 svaki put — što je potpuno uobičajeno, a ne pokvareno. Uključite opciju „Bez ponavljanja” ukoliko vam je bitno da svaki odabir unutar jednog izvlačenja bude drugačiji.

Pamti li alat moje odabire i je li korištenje besplatno?

„Povijest” čuva posljednjih 10 izvlačenja isključivo u vašem pregledniku, tako da u svakom trenu možete vratiti, kopirati ili obrisati raniji rezultat te po želji potpuno isprazniti listu. Alat je potpuno besplatan, nema potrebe za registracijom, a s obzirom na to da se baš nikakvi podaci ne prenose na internet, vaše odabire ne bismo mogli vidjeti ni spremiti čak i kada bismo to htjeli.