Извлекайте набор случайных целых чисел из настраиваемого включительного диапазона, при желании без повторов — универсальный генератор случайных чисел для игр, розыгрышей небольших призов и учебных занятий по статистике.
Алгоритм
Даны from, to и numberToExtract:
- Проверить, что обе границы — целые и
from ≤ to. - Если дубликаты запрещены, потребовать, чтобы ширина диапазона (
to − from + 1) была не меньше запрошенного количества. - Многократно брать равномерно случайное целое в
[from, to], пока не наберётся нужное число; при запрете дубликатов отбрасывать уже присутствующие значения.
Результаты сортируются по возрастанию для удобства чтения.
Когда пользоваться
Выбрать случайных победителей для небольшого розыгрыша призов, создать учебные наборы данных для занятия по статистике, смоделировать броски кубика для игрового вечера или объяснить вероятность с воспроизводимыми выборками (через seed в программном API при разработке).
Ограничения
Случайность берётся из псевдослучайного генератора среды — подходит для повседневных игр и демо, не для криптографии и сертификации с высоким уровнем гарантий. Очень широкие диапазоны с большим числом извлечений без дубликатов могут упираться в производительность из‑за повторного отбраковочного сэмплирования.
Правовая оговорка
Этот инструмент — универсальный генератор случайных чисел, а не сертифицированная система розыгрыша. Он не гарантирует честность для регулируемых розыгрышей с призами. Организаторы платных розыгрышей или розыгрышей с призами должны соблюдать местные нормы защиты потребителей и использовать независимо проверяемый источник случайности, если это требуется.
Пример
При from = 1, to = 90 и numberToExtract = 6 без дубликатов инструмент возвращает шесть чисел по возрастанию, например 4 17 29 41 63 88.