CodeKitHub
Генераторы

Генератор случайных букв

Последнее обновление:

Выбор букв «наугад» вручную — закрыть глаза и ткнуть в алфавит, или попросить друга выпалить букву — печально известен своей необъективностью; люди тяготеют к определённым буквам гораздо чаще, чем предсказывала бы случайность. Этот инструмент генерирует столько случайных букв, сколько вам нужно, в верхнем, нижнем или смешанном регистре, с опцией запрета повторов, используя тот же криптографически стойкий источник случайных чисел (crypto.getRandomValues()), что и Генератор паролей этого сайта — а не более слабый Math.random(), который многие похожие инструменты тихо используют.

Результаты

Что это за инструмент?

Генератор случайных букв выбирает одну или несколько букв из 26-буквенного английского алфавита так, чтобы каждая буква имела равный, беспристрастный шанс быть выбранной каждый раз. Качество этой случайности полностью зависит от того, какой источник случайных чисел лежит в основе: наивная реализация с использованием `Math.random()` в JavaScript — это псевдослучайный генератор, не предназначенный для сопротивления предсказанию, тогда как `crypto.getRandomValues()` — определённый в W3C Web Cryptography API — опирается на криптографически стойкий источник случайности вашей операционной системы.

Этот инструмент использует `crypto.getRandomValues()` для каждой генерируемой буквы — тот же подход, что используется в [Генераторе паролей](/password-generator/) этого сайта. Смотрите наше [сравнение, тестирующее, какие популярные инструменты на самом деле используют безопасный источник случайности](/blog/online-password-generators-math-random-vs-crypto/), чтобы понять, почему это различие важно даже для такой простой вещи, как выбор буквы.

Опция «без повторов» выполняет перемешивание доступного пула букв в стиле Фишера–Йетса и выбирает без возврата, гарантируя, что каждая буква в результате уникальна — полезно во всём, где повторяющаяся буква была бы проблемой, например при назначении уникальных однобуквенных кодов.

Зачем его использовать?

  • Честно выбрать буквы для классных занятий, игр (например, ледокола со случайной буквой или словесной игры) или розыгрышей.
  • Сгенерировать уникальные однобуквенные идентификаторы или коды, не повторив их случайно.
  • Получить действительно беспристрастную случайную букву вместо того, чтобы полагаться на бессознательные предпочтения человека.
  • Выбрать верхний, нижний или смешанный регистр в зависимости от того, что нужно вашей задаче.
  • На 100% локально и криптографически случайно: всё выполняется в вашем браузере с помощью crypto.getRandomValues(), и ничего не отправляется на сервер.

Как использовать

  1. Установите, сколько букв вам нужно (от 1 до 100).
  2. Выберите регистр: верхний, нижний или смешанный.
  3. Включите «Без повторов», если вам нужно, чтобы каждая буква в результате отличалась от остальных.
  4. Нажмите «Сгенерировать», чтобы получить результат, затем нажмите «Копировать», чтобы скопировать буквы в буфер обмена.

Пример

Ввод

Количество: 5, Регистр: верхний, Без повторов: включено

Результат

Q, F, B, X, M

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

Math.random() против crypto.getRandomValues() для выбора букв

Для обычной игры разница незаметна. Но там, где предсказуемость действительно имела бы значение, это не так.

СвойствоMath.random()crypto.getRandomValues()
Цель проектированияСкорость и статистическое распределениеНепредсказуемость, устойчивость к предсказанию
Подходит для чувствительного к безопасности использованияНет — об этом прямо говорит сама документация MDNДа — опирается на CSPRNG операционной системы
Используется этим инструментомНетДа, для каждой сгенерированной буквы

Похожие инструменты

Для других генераторов случайности попробуйте эти инструменты.

Генератор случайных чисел · Генератор паролей · Генератор фэнтезийных имён

Часто задаваемые вопросы

Это действительно случайно, или просто Math.random()?

Используется crypto.getRandomValues() — криптографически стойкий источник случайных чисел Web Cryptography API, опирающийся на вашу операционную систему, а не более слабый псевдослучайный генератор Math.random(), который многие похожие инструменты используют, не сообщая об этом. Смотрите наше протестированное сравнение того, какие популярные генераторные инструменты на самом деле используют безопасный источник случайности, чтобы узнать подробнее, почему это важно.

Что делает опция «без повторов»?

При её включении инструмент выбирает буквы без возврата из доступного пула (26 букв для одного регистра, 52 для смешанного), поэтому каждая буква в результате гарантированно отличается от всех остальных букв в этом же результате. Без неё каждая буква выбирается независимо, и повторы возможны — точно так же, как при многократном броске кубика.

Каково максимальное количество уникальных букв, которое я могу сгенерировать?

26 для режима «только верхний регистр» или «только нижний регистр», либо 52 для смешанного регистра (поскольку верхний и нижний варианты одной и той же буквы считаются разными результатами). Если вы запросите больше при включённой опции «без повторов», количество будет ограничено размером пула.

Могу ли я сгенерировать буквы смешанного регистра, где одна и та же буква встречается и в верхнем, и в нижнем регистре?

Да — в режиме смешанного регистра при выключенной опции «без повторов» ничто не мешает и «A», и «a» появиться в одном результате, поскольку они генерируются независимо. При включённой опции «без повторов» и выбранном смешанном регистре они рассматриваются как две отдельные записи пула, поэтому обе всё ещё могут появиться, но не более одного раза каждая.

Отслеживается ли моё использование этого инструмента или куда-то отправляется?

Нет. Вся генерация случайных значений происходит полностью на стороне клиента, в вашем браузере, с использованием Web Cryptography API. Ничего не загружается и не логируется.

Похожие инструменты