Случајан избор са листе

Убаците било коју листу — имена, задатке или идеје — и пустите алатку да поштено бира. Извлачење се одвија у прегледачу, па подаци никада не напуштају ваш уређај.

Притисните Генериши за извлачење
Раздвајач се одређује аутоматски, али га можете изабрати ручно испод.
Напредне опције

Треба да извучете добитника наградне игре, прозовете ученика пред таблу или да одлучите ко данас баца ђубре? Ова бесплатна онлајн алатка поштено и случајно бира победнике са било које листе коју убаците. Унесите своје опције у поље „Ставке“ — по једну у сваком реду или одвојене зарезима, подесите жељени број резултата у пољу „Број“ и притисните „Генериши“. Листа мора имати најмање два елемента и може да прими до 1000 уноса, сваки дужине до 200 карактера.

Свако извлачење се обавља директно у вашем прегледачу помоћу Web Crypto API (crypto.getRandomValues), који преузима криптографски сигурне случајне вредности из вашег оперативног система. Ваша листа се никада не шаље на сервер, не чува се и ми је никада не видимо — што је овде много важније него код других генератора, јер људи најчешће убацују листе клијената, дневнике одељења или имена колега. Дугме „Учитај из датотеке“ поштује исто обећање: ваш прегледач сам чита датотеку и попуњава поље локално, без отпремања било чега на интернет.

Опције су прилагођене листама које људи заиста користе. Опција „Раздвајач“ је подразумевано постављена на „Аутоматски“ и сама препознаје нове редове и зарезе, тако да листа копирана из табеле, поруке или документа ради без додатног форматирања. Закључајте је на „Нови ред“, „Зарез“ или „Размак“ када се у вашим подацима мешају различити формати. Имајте на уму да је опција „Размак“ увек свестан избор и никада се не примењује аутоматски, јер уноси попут имена и презимена садрже размаке, а аутоматско раздвајање по њима би уништило листу. Поље „Број“ одређује колико ће елемената бити извучено (од 1 до 100). Извлачите три добитника од 200 учесника? Убаците учеснике, поставите „Број“ на 3 и притисните „Генериши“. Две опције постају доступне тек када је број 2 или више, а до тада остају неактивне (сиве): прекидач „Без понављања“, који одлучује да ли исти елемент може бити извучен два пута, и „Формат резултата“, који одређује како се резултати раздвајају („Сваки у новом реду“, „Одвојено размацима“ или „Одвојено зарезима“).

Низ дугмади унутар поља „Ставке“ врши уређивање које бисте иначе морали да радите негде другде. Опција „Учитај из датотеке“ повлачи листу директно из текстуалне или CSV датотеке. Дугме „Схуффле“ мења редослед уноса у пољу, „Сортирај“ их ређа абецедно и по природном редоследу бројева (док други клик обрће редослед), а „Обриши“ потпуно празни поље. Дугме „Убаци пример“ убацује кратку тест листу како бисте могли да испробате алатку једним кликом. Опција „Прошири на целу листу“ отвара поље како би приказала целу дугу листу, док је „Скупи“ враћа на подразумевану величину. Испод резултата, дугме „Копирај све“ пребацује сваки извучени елемент у меморију (clipboard), „Сачувај у датотеку“ их уписује на ваш уређај, а „Историја“ чува ваших последњих 10 извлачења у прегледачу, па вам је претходни резултат доступан једним кликом.

Како се заиста врши случајан избор? Када притиснете „Генериши“, страница уместо ослањања на псеудослучајну JavaScript функцију Math.random() тражи од прегледача случајне вредности преко crypto.getRandomValues и користи их за избор позиција на вашој листи. Претварање сирове 32-битне вредности у позицију је место где већина алатки тихо прави грешку: дељење вредности дужином листе и узимање остатка је очигледан, али пристрасан приступ. То је тако јер, осим уколико се број 2^32 дели дужином листе без остатка, елементи на почетку листе падају нешто чешће од осталих. Овај недостатак се назива modulo bias и он је мерљив, а не теоретски. Ова алатка уместо тога одбацује сваку вредност која премашује највећи тачан садржалац дужине листе и извлачи поново — техника позната као rejection sampling. Ово кошта неколико додатних извлачења у позадини, али даје тачну гаранцију уместо приближне. Позиција на листи не мења ништа: први и последњи елемент имају једнаку вероватноћу при сваком извлачењу.

Прекидач „Без понављања“ одваја две потпуно различите врсте извлачења, а статистика за сваку има своје име. Када је укључен, алатка меша копију ваше листе помоћу алгоритма Fisher-Yates и узима елементе са врха — исто као да извлачите папириће из шешира без враћања назад, тако да нико није изабран два пута и свака група те величине има једнаке шансе. То се зове sampling without replacement (узорковање без понављања), и то је оно што вам треба при избору добитника награда, тимова или редоследа. Када је искључен, сваки избор се прави независно од целе листе, па исти елемент може пасти више од једном. То је sampling with replacement (узорковање са понављањем), што је потребно када сви остају важећи у сваком кругу, као код поновљених извлачења или брзог статистичког узорка. Ниједан од ових режима није поштенији од другог; они једноставно одговарају на различите потребе.

Поштено извлачење споља не треба да изгледа поштено. Ако извлачите пет имена од десет, редовно ћете видети два елемента која су у првобитној листи била један поред другог, или исто име два пута заредом када су понављања дозвољена, и сваки од тих случајева је потпуно нормалан. Свако извлачење је независно: претходни резултати немају никакав утицај на касније, и никада не долази нечији „ред“ за победу. Инстинкт који тврди супротно назива се gambler's fallacy (коцкарска заблуда), и то је исти инстинкт због којег ми сами лоше бирамо случајно — када нас замоле да изаберемо нешто насумично, избегавамо први и последњи елемент, трудимо се да не понављамо имена и своје изборе распоређујемо много равномерније него што то чини права случајност. Резултат који изгледа сумњиво уредно је отисак људског прста; права случајност ствара груписања и понављања.

Зашто изабрати ову алатку за случајан избор?

Случајан избор је користан свуда где одлука мора да преживи преиспитивање. Наставници прозивају ученике пред таблу без издвајања миљеника и деле одељење у пројектне групе. Креатори садржаја и маркетари извлаче добитнике наградних игара и жребова пред публиком која мора да верује у поштеност резултата. Менаџери распоређују задатке које нико не жели добровољно да преузме, а тимови одлучују о редоследу презентација или ко дежура. Истраживачи извлаче случајан узорак записа за ревизију. Породице стављају тачку на расправу о томе шта ће се гледати, а гладно друштво бира кафану. Заједничка карактеристика за све ове ситуације је избор који свако може касније да објасни: извлачење користи криптографску случајност, одвија се искључиво на вашем уређају, а део „Историја“ чува резултат ако неко касније посумња у њега.

Вреди знати и неколико искрених ограничења ове алатке. Алатка не може да извуче више јединствених елемената него што ваша листа садржи — за три победника потребна су најмање три имена — и зауставља се на 1000 уноса (са по 200 карактера сваки) и 100 резултата при једном извлачењу. Дугмад „Схуффле“ и „Сортирај“ функционишу ред по ред, па ће се листа одвојена зарезима и убачена у једном реду прераспоредити тек када се елементи поделе по један у сваком реду; поред тога, оба дугмета мењају редослед текста у пољу, а не самог извлачења, јер је извлачење једнако поштено без обзира на редослед ваших уноса. Такође, сваки елемент подразумевано има исту тежину, па ако желите да једно име има двоструке шансе при извлачењу, то име мора бити унето два пута на листи. Унутар ових граница, гаранција је чврста — сваки унос на вашој листи има потпуно исте шансе при сваком појединачном извлачењу.

FAQ

Како да насумично изаберем име са листе?

Убаците имена у поље „Ставке“ — по једно у сваком реду или одвојена зарезима или размацима — оставите „Број“ на 1 и притисните „Генериши“. Једно име ће бити одмах извучено. За више имена одједном, повећајте вредност поља „Број“ до жељене цифре.

Да ли је избор заиста поштен?

Да. Свако извлачење користи Web Crypto API (crypto.getRandomValues) вашег прегледача заједно са техником rejection sampling, која уклања modulo bias који би настао при једноставној имплементацији. Сваки елемент има потпуно исту вероватноћу без обзира на своју позицију на листи, а за извлачење више јединствених елемената користи се Fisher-Yates алгоритам за мешање, тако да и свака група те величине има једнаке шансе.

Да ли се моја листа отпрема на ваш сервер?

Не. Цело извлачење се одвија локално у вашем прегледачу: листа, резултати и историја никада не напуштају ваш уређај, па је безбедно убацити имена, е-маил адресе или било какве приватне листе. Дугме „Учитај из датотеке“ такође ради локално — ваш прегледач сам чита датотеку и ништа се не отпрема на интернет.

Могу ли да убацим листу одвојену зарезима или размацима уместо једног елемента по реду?

Да. Опција „Раздвајач“ је постављена на „Аутоматски“, што само препознаје нове редове и зарезе, тако да листа копирана из табеле, поруке или документа ради без икаквих промена. За листу одвојену размацима потребан је један додатни корак — поставите „Раздвајач“ на „Размак“ — јер уноси попут имена и презимена сами по себи садрже размаке, па се никада не раздвајају аутоматски. Ако ваши подаци имају мешане формате, закључајте опцију „Раздвајач“ на „Нови ред“ или „Зарез“.

Шта ради прекидач „Без понављања“?

Када је опција „Без понављања“ укључена, сваки извучени елемент је различит — исто као да извлачите папириће из шешира без враћања назад, што је тачно оно што вам треба приликом избора победника или тимова. Када је искључена, исти елемент се може извући више од једном, што статистичари називају sampling with replacement.

Зашто су опције „Без понављања“ и „Формат резултата“ неактивне (сиве)?

Зато што се обе примењују само када извлачите више од једног елемента, као што каже савет поред њих: „Важи само када је број већи од 1.“ Повећајте поље „Број“ на 2 или више и обе ће постати доступне; све док је број 1, нема шта да се дуплира нити да се раздваја.

Шта ради опција „Формат резултата“?

Она одређује како ће се приказивати и копирати више извучених елемената: „Сваки у новом реду“, „Одвојено размацима“ за брзо слање поруке у чету, или „Одвојено зарезима“ за убацивање у табелу или скрипту. Ова опција постаје доступна када је поље „Број“ 2 или више.

Шта раде дугмад „Схуффле“ и „Сортирај“?

Дугме „Схуффле“ мења редослед уноса унутар поља „Ставке“, док их „Сортирај“ ређа абецедно и по природном редоследу бројева — ако кликнете поново, редослед се обрће. Оба мењају само начин на који је написана ваша листа, а не начин на који функционише извлачење: алатка је једнако поштена без обзира на редослед елемената.

Колико елемената може да садржи листа и колико њих могу да извучем одједном?

Листа садржи од 2 до 1000 уноса (до 200 карактера сваки), а једно извлачење враћа до 100 резултата. Празни редови и размаци на крајевима се игноришу, тако да листа убачена из табеле или документа функционише без промена.

Да ли је ова алатка погодна за избор добитника наградних игара или жребова?

Да, и то је једна од најчешћих намена. Убаците учеснике, поставите поље „Број“ на број награда, оставите опцију „Без понављања“ укљученом како нико не би освојио две награде и притисните „Генериши“. Пошто извлачење користи криптографски сигурну случајност и одвија се искључиво на вашем уређају, процес је лако објаснити, а одељак „Историја“ чува резултат уколико неко од учесника касније посумња у њега.

Могу ли је користити за поделу људи у тимове?

Да. Поставите поље „Број“ на величину првог тима и притисните „Генериши“ — извучена имена ће чинити први тим. Избришите их са листе и поновите процес за следећи тим. Оставите опцију „Без понављања“ укљученом како нико не би завршио у два тима истовремено.

Зашто је исто име пало два пута заредом?

Зато што се независна извлачења понављају, и управо тако изгледа права случајност. Свако извлачење игнорише сва претходна, па тако у листи од десет имена исто име да падне два пута заредом има шансу 1 од 10 при сваком извлачењу — то није грешка, већ нормална појава. Укључите опцију „Без понављања“ ако вам је потребно да сваки избор у оквиру једног извлачења буде различит.

Да ли алатка памти моја извлачења и да ли је бесплатна?

Одељак „Историја“ чува последњих 10 извлачења у вашем прегледачу, тако да можете да вратите, копирате или избришете претходни резултат, а по потреби и да очистите све одједном. Алатка је потпуно бесплатна, без регистрације, и пошто се подаци нигде не преносе, ми не бисмо могли да видимо нити сачувамо резултате ваших извлачења чак ни када бисмо то желели.