Случайный выбор из списка

Вставьте любой список — имена, задачи или идеи — и позвольте инструменту сделать справедливый случайный выбор. Каждая жеребьевка проходит локально в браузере, поэтому список никогда не покидает ваше устройство.

Нажмите «Сгенерировать», чтобы получить результат
Разделитель определяется автоматически, но вы можете выбрать его вручную ниже.
Расширенные настройки

Нужно разыграть приз, вызвать ученика отвечать или решить, кто моет посуду? Этот бесплатный онлайн-инструмент осуществляет случайный выбор из любого списка, который вы вставите. Поместите свои записи в поле «Элементы» — по одной на строку или через запятую — задайте нужное число с помощью поля «Количество» и нажмите «Сгенерировать». Список должен содержать как минимум две записи и может вмещать до 1000 элементов, каждый длиной до 200 символов.

Каждый выбор выполняется непосредственно в вашем браузере с использованием Web Crypto API (crypto.getRandomValues), которое обеспечивает криптографически надежные случайные значения на основе системной случайности. Ваш список никогда не отправляется на сервер, не логируется и недоступен нам — здесь это важнее, чем в большинстве генераторов, поскольку люди обычно вставляют базу клиентов, список класса или имена коллег. Кнопка «Загрузить из файла» обеспечивает ту же конфиденциальность: браузер читает файл и заполняет поле локально, ничего никуда не загружая.

Параметры созданы для форматов данных, которые люди реально используют. Опция «Разделитель» установлена на «Автоматически», что позволяет системе самой различать переносы строк и запятые, чтобы текст, скопированный из таблицы, чата или документа, работал без какого-либо переформатирования. Если в ваших данных форматы смешаны, зафиксируйте настройку на вариантах «С новой строки», «Запятая» или «Пробел» — учтите, что «Пробел» всегда является осознанным выбором и никогда не применяется автоматически, так как элементы вроде полных имен сами содержат пробелы, и разделение по ним сломало бы больше списков, чем исправило. Поле «Количество» определяет, сколько элементов нужно извлечь: от 1 до 100. Разыгрываете трех победителей среди 200 участников? Вставьте имена, установите «Количество» на 3 и нажмите «Сгенерировать». Два элемента управления применяются только тогда, когда это число достигает 2 или более, а до этого остаются неактивными: «Без повторений», которое решает, может ли один и тот же элемент выпасть дважды, и «Формат результата», определяющее то, как разделяются выбранные элементы — «По одному на строку», «Через пробел» или «Через запятую».

Ряд кнопок прямо в поле «Элементы» выполняет те действия, которые вам иначе пришлось бы делать где-то еще. Функция «Загрузить из файла» подтягивает список напрямую из простого текстового файла или CSV. Кнопка «Перемешать» меняет порядок элементов в поле, «Сортировать» выстраивает их по алфавиту с естественной сортировкой чисел (а повторное нажатие обращает порядок), тогда как «Очистить» полностью освобождает поле. Кнопка «Вставить пример» добавляет короткий демонстрационный список, чтобы вы могли опробовать инструмент в один клик, а «Развернуть на весь список» увеличивает поле для полного отображения длинного текста; затем «Свернуть» возвращает его к исходному размеру. Под результатом функция «Скопировать всё» отправляет каждый выбор в буфер обмена, «Сохранить в файл» записывает их на диск, а ваша «История» хранит последние 10 жеребьевок в браузере, чтобы к предыдущему результату можно было вернуться одним щелчком.

Как именно происходит выбор? Когда вы нажимаете «Сгенерировать», страница запрашивает у браузера случайные значения через crypto.getRandomValues и использует их для выбора позиций в вашем списке, вместо того чтобы полагаться на псевдослучайную функцию JavaScript, такую как Math.random(). Превращение сырого 32-битного значения в позицию — это именно то место, где генераторы незаметно ошибаются: вычисление остатка от деления значения на длину списка (modulo) является очевидным и одновременно предвзятым подходом, поскольку, если длина не делит 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, так что любая группа такого размера имеет одинаковые шансы.

Загружается ли мой список на ваш сервер?

Нет. Весь процесс проходит локально в вашем браузере: текст, результаты и история никогда не покидают ваше устройство, поэтому вставлять имена, email-адреса или любые частные данные полностью безопасно. Кнопка «Загрузить из файла» также работает локально — ваш браузер сам читает файл, и ничего никуда не отправляется.

Могу ли я вставить список, разделенный запятыми или пробелами, вместо списка в столбик?

Да. Опция «Разделитель» установлена на «Автоматически», что позволяет системе самостоятельно отличать переносы строк от запятых, благодаря чему данные, скопированные из таблицы, сообщения или документа, работают без изменений. Список через пробел требует одного дополнительного шага — установите «Разделитель» на «Пробел» — поскольку элементы вроде полных имен сами содержат пробелы и никогда не разделяются по ним автоматически. Фиксируйте «Разделитель» на «С новой строки» или «Запятая» только в том случае, если в ваших данных смешаны разные форматы.

Что делает переключатель «Без повторений»?

Когда опция «Без повторений» включена, каждый выбранный элемент уникален — словно вы тянете билеты из шляпы и не кладете их обратно, что идеально подходит для определения победителей или команд. Если ее отключить, один и тот же элемент может выпасть более одного раза, что статистики называют выборкой с возвращением.

Почему опции «Без повторений» и «Формат результата» неактивны?

Потому что обе применяются только тогда, когда вы выбираете более одного элемента, как и сказано в подсказке рядом с ними: «Действует только при количестве больше 1.» Увеличьте «Количество» до 2 или выше, и обе станут доступны; при одном извлечении нечего повторять и нечего разделять.

Для чего нужна опция «Формат результата»?

Она определяет, как отображаются и копируются несколько выбранных элементов: «По одному на строку», «Через пробел» для быстрого сообщения в чате или «Через запятую» для вставки в таблицу или скрипт. Функция становится доступной, как только «Количество» достигает 2 или более.

Что делают кнопки «Перемешать» и «Сортировать»?

Функция «Перемешать» меняет порядок элементов внутри поля «Элементы», а «Сортировать» выстраивает их по алфавиту с естественным порядком чисел — повторное нажатие обращает сортировку. Обе кнопки меняют лишь то, как записан ваш список, а не то, как работает розыгрыш: этот инструмент одинаково объективен независимо от порядка следования элементов.

Сколько элементов может содержать список и сколько можно выбрать за один раз?

Список вмещает от 2 до 1000 элементов по 200 символов каждый, а один розыгрыш выдает до 100 результатов. Пустые строки и лишние пробелы игнорируются, поэтому текст, вставленный из таблицы или документа, работает без переформатирования.

Подходит ли этот инструмент для розыгрыша призов и конкурсов?

Да, и это одно из самых частых применений. Вставьте список участников, установите «Количество» равным числу призов, оставьте опцию «Без повторений» включенной, чтобы никто не выиграл дважды, и нажмите «Сгенерировать». Поскольку инструмент использует криптографически надежную случайность и работает исключительно на вашем устройстве, этот процесс легко объяснить, а «История» сохранит результат на случай, если кто-то из участников позже в нем усомнится.

Можно ли использовать его для разделения людей на команды?

Да. Установите «Количество» равным размеру первой команды и нажмите «Сгенерировать» — выбранные имена составят первую команду. Удалите их из списка и повторите процесс для следующей. Оставьте включенной опцию «Без повторений», чтобы никто не оказался в двух командах одновременно.

Почему одно и то же имя выпало дважды подряд?

Потому что независимые извлечения допускают повторения, и именно так выглядит настоящая случайность. Каждый розыгрыш полностью игнорирует все предыдущие, поэтому в списке из десяти имен появление одного и того же человека дважды подряд каждый раз имеет шанс 1 к 10 — это совершенно нормальное явление, а не сбой. Включите режим «Без повторений», если вам нужно, чтобы все элементы в рамках одной жеребьевки были разными.

Запоминает ли инструмент мои выборы и бесплатен ли он?

Ваша «История» хранит последние 10 извлечений прямо в вашем браузере, так что вы можете восстановить, скопировать или удалить прошлый результат, а также полностью очистить весь список, когда захотите. Инструмент абсолютно бесплатен, не требует регистрации, и поскольку данные никуда не передаются, мы не смогли бы увидеть или сохранить ваш выбор, даже если бы захотели.