Musisz wylosować zwycięzcę konkursu, wywołać ucznia do odpowiedzi lub zdecydować, kto pozmywa naczynia? Ten darmowy losowy wybór z listy online sprawiedliwie losuje z dowolnych wklejonych elementów. Umieść swoje pozycje w polu „Elementy” — po jednej w wierszu lub oddzielone przecinkami —, ustaw wymaganą ilość w polu „Liczba” i wciśnij „Generuj”. Lista wymaga przynajmniej dwóch elementów i pomieści do 1000, z których każdy może mieć maksymalnie 200 znaków.
Każde losowanie odbywa się bezpośrednio w Twojej przeglądarce za pomocą Web Crypto API (crypto.getRandomValues), co dostarcza kryptograficznie silnych losowych wartości z podstawowego systemu operacyjnego. Twoja lista nigdy nie jest wysyłana na serwer, nigdy nie jest zapisywana i nikt z nas jej nie widzi — ma to tutaj o wiele większe znaczenie niż w większości generatorów, ponieważ wklejane dane to zazwyczaj listy klientów, dzienniki klasowe czy nazwiska współpracowników. Opcja „Załaduj z pliku” składa tę samą obietnicę: to przeglądarka odczytuje plik i wstawia dane lokalnie, bez przesyłania czegokolwiek do sieci.
Ustawienia zostały stworzone pod kątem list, którymi ludzie faktycznie dysponują. „Separator” jest domyślnie ustawiony na „Automatycznie”, co samodzielnie rozpoznaje nowe wiersze oraz przecinki, dzięki czemu lista skopiowana z arkusza kalkulacyjnego, komunikatora czy dokumentu działa od razu. Zablokuj go na opcji „Nowy wiersz”, „Przecinek” lub „Spacja”, gdy Twoje dane mieszają formaty — pamiętaj też, że „Spacja” to zawsze celowy wybór i nigdy nie włącza się z automatu. Dzieje się tak, ponieważ chociażby pełne imiona i nazwiska zawierają spacje, a domyślny podział po nich zepsułby więcej list, niż zdołał naprawić. Opcja „Liczba” ustala, ile elementów zostanie wylosowanych, od 1 do 100. Losujesz trzech zwycięzców spośród 200 uczestników? Wklej ich, zmień pole „Liczba” na 3 i wciśnij „Generuj”. Dwie kontrolki stają się aktywne dopiero wtedy, gdy wybierzesz 2 lub więcej, a do tego momentu pozostają wyszarzone: „Bez powtórzeń”, która decyduje o tym, czy ten sam element może zostać wylosowany dwukrotnie, oraz „Format wyników”, która określa jak oddzielane są wylosowane pozycje — „Jeden w wierszu”, „Oddzielone spacjami” albo „Oddzielone przecinkami”.
Rząd przycisków wewnątrz obszaru „Elementy” umożliwia edycję, którą w innym przypadku trzeba by robić gdzie indziej. „Załaduj z pliku” wyciąga listę prosto z pliku tekstowego lub CSV. Przycisk „Wymieszaj” zmienia kolejność pozycji, „Sortuj” układa je alfabetycznie przy zachowaniu naturalnej kolejności liczb (drugie kliknięcie odwraca kolejność), a „Wyczyść” usuwa całą zawartość. Przycisk „Wstaw przykład” wrzuca krótką listę testową, aby móc wypróbować działanie jednym kliknięciem, podczas gdy „Rozwiń na całą listę” otwiera pole w dół, aby w całości ukazać długą zawartość, a „Zwiń” powraca do podstawowego rozmiaru. Pod miejscem na wynik opcja „Kopiuj wszystko” kopiuje wylosowane dane do schowka, „Zapisz do pliku” pobiera je na urządzenie, a „Historia” przechowuje ostatnie 10 losowań w samej przeglądarce, więc wcześniejszy wynik jest oddalony o jedno kliknięcie.
W jaki sposób dokonuje się właściwy wybór? Kiedy wciskasz „Generuj”, strona prosi przeglądarkę o losowe wartości za pośrednictwem crypto.getRandomValues i wykorzystuje je do wskazania pozycji na liście, zamiast opierać się na funkcji JavaScriptu takiej jak Math.random(). Przekształcanie czystej wartości 32-bitowej na określoną pozycję to moment, w którym podobne narzędzia po cichu popełniają błąd. Użycie w tym celu reszty z dzielenia (modulo) wartości przez długość listy jest najprostszym, ale i stronniczym podejściem. Jeśli 2^32 nie dzieli się równo przez długość listy, pozycje z początku listy pojawiają się nieco częściej. Tę wadę nazywa się błędem modulo (modulo bias) i można ją wręcz zmierzyć. Zamiast tego mechanizm odrzuca każdą wartość przekraczającą największą dokładną wielokrotność długości listy i losuje ponownie — co nazywane jest próbkowaniem z odrzuceniem (rejection sampling). Kosztuje to kilka dodatkowych pętli, ale gwarantuje idealną dokładność zamiast przybliżonej. Pozycja na liście niczego nie zmienia: pierwszy i ostatni element mają na to samo prawdopodobieństwo podczas każdego losowania.
Opcja „Bez powtórzeń” rozdziela dwa całkowicie odmienne rodzaje losowań, a statystyka ma na oba swoją nazwę. Gdy jest włączona, układ losujący tasuje kopię Twojej listy algorytmem Fishera-Yatesa i bierze pozycje z samej góry — to dokładnie to samo co wyciąganie karteczek z kapelusza bez zwracania ich z powrotem. Nikt nie zostaje wybrany dwukrotnie, a każda grupa tej samej wielkości ma jednakowe szanse na wygraną. Jest to losowanie bez zwracania (sampling without replacement), i właśnie tego chcesz w przypadku losowania nagród, drużyn czy kolejności tur. Po wyłączeniu tej opcji każdy wybór odbywa się niezależnie z całej puli, przez co ten sam element może paść więcej niż jeden raz. Taka operacja to losowanie ze zwracaniem (sampling with replacement), co sprawdza się, gdy wszyscy mogą brać udział w każdej kolejnej rundzie, na przykład w szybkich próbkach statystycznych. Żaden z tych trybów nie jest bardziej sprawiedliwy; odpowiadają one po prostu na inne potrzeby.
Sprawiedliwe losowanie nie powinno wyglądać sprawiedliwie. Wylosuj pięć imion z dziesięciu, a regularnie zobaczysz dwa wybory, które na pierwotnej liście znajdowały się obok siebie, lub to samo imię dwa razy z rzędu przy włączonych powtórzeniach — każdy z tych przypadków jest całkowicie zwyczajny. Każde losowanie jest niezależne: wcześniejsze wyniki nie mają najmniejszego wpływu na kolejne, i nikomu nigdy nie „należy się” wygrana z racji poprzednich pechowych prób. Instynkt, który usilnie twierdzi inaczej, to złudzenie gracza (gambler's fallacy) i to on sprawia, że sami z siebie jesteśmy kiepscy w przypadkowym wskazywaniu elementów. Zapytani o losowy wybór unikamy początku i końca, staramy się nie powtarzać nazwy i rozsiewamy swoje decyzje o wiele równomierniej niż robi to sam przypadek. Wynik, który wygląda na podejrzanie uporządkowany, to odcisk ludzkiego palca; prawdziwa losowość tworzy zbitki.
Dlaczego warto wybrać to narzędzie do losowego wyboru z listy?
- Działanie w samej przeglądarce: lista jest czytana na urządzeniu i nigdzie nie jest wysyłana
- Losowość Web Crypto API: kryptograficzne bezpieczeństwo zamiast Math.random()
- Brak błędu modulo: próbkowanie z odrzuceniem utrzymuje równe szanse dla wszystkich
- Dowolny kształt danych: co wiersz, po przecinku lub spacji, bez żadnego formatowania
- Tryb „Bez powtórzeń”: losuj zwycięzców albo drużyny tak, by nikt nie padł dwa razy
- Do 1000 elementów i aż do 100 wyników podczas jednego losowania
- Wbudowane narzędzia list: załaduj z pliku, wymieszaj, sortuj, wyczyść, wstaw przykład
- Historia i Zapisz do pliku: zachowaj zapis losowania, które możesz później potrzebować uzasadnić
- Nielimitowane i darmowe: zero rejestracji, brak limitów, niczego na naszych serwerach
Losowy wybór pojawia się wszędzie tam, gdzie podjęta decyzja musi przetrwać zadawane pytania. Nauczyciele w Polsce wywołują w ten sposób uczniów do odpowiedzi bez faworyzowania kogokolwiek oraz dzielą klasę na grupy. Streamerzy i marketerzy wyciągają zwycięzców nagród na oczach widowni, która musi uwierzyć w wynik. Menedżerowie rozdają zadania, do których nikt nie zgłasza się z własnej woli, a zespoły ustalają kolejność wystąpień demonstracyjnych czy osób na dyżurze. Badacze pobierają losową próbkę rekordów do audytu. Rodziny ucinają kłótnie o to, co obejrzeć, a głodna paczka znajomych wskazuje restaurację. Wspólnym mianownikiem jest wybór, który da się potem wyjaśnić: proces wykorzystuje losowość kryptograficzną, wszystko dzieje się na Twoim urządzeniu, a „Historia” przechowuje wynik, jeśli ktoś zapyta o niego później.
To narzędzie ma kilka uczciwych ograniczeń, które warto znać. Nie potrafi wylosować więcej unikalnych elementów, niż posiada Twoja lista — trzech zwycięzców potrzebuje minimum trzech nazwisk. Zatrzymuje się na 1000 wpisów, z których każdy może mieć maksymalnie 200 znaków, a jedno losowanie pozwala na maksymalnie 100 wyborów. Przycisk „Wymieszaj” i opcja „Sortuj” działają na całych wierszach, więc ciąg oddzielony przecinkami, ale wklejony w jednej linii zostanie przetasowany dopiero po rozbiciu go na osobne linie. Obie te funkcje reorganizują to, co widzisz w polu, a nie samo losowanie — pozostaje ono równie sprawiedliwe niezależnie od tego, w jakiej kolejności ułożysz dane. Co do zasady każdy element ma dokładnie taką samą wagę, więc wybór, w którym jedno z imion powinno liczyć się podwójnie, wymaga wpisania tego imienia dwa razy. W obrębie tych granic gwarancja pozostaje jednak mocna — każdy pojedynczy wpis z Twojej listy ma dokładnie takie same szanse na wylosowanie, przy każdej jednej próbie.