С чего начать
Прочитайте, что такое генератор случайных чисел: аппаратные, псевдослучайные и криптографически стойкие генераторы, почему числа повторяются и что предлагает браузер. Когда нужны числа, а не объяснения, генератор случайных чисел создаст их в вашем браузере в любом диапазоне, с повторами или без.
Где генераторы незаметно ошибаются
Надежный источник случайности — только половина дела. Вторая половина — перевести его необработанные значения в ваш диапазон, и именно здесь ошибаются многие самодельные генераторы. Взять остаток от деления значения на размер диапазона — очевидный подход, но он дает едва заметное смещение: если размер диапазона не делит пространство значений источника нацело, наименьшие числа диапазона выпадают чуть чаще остальных. Этот изъян называется смещением по модулю (modulo bias). Один из способов его устранить — выборка с отклонением (rejection sampling): отбрасывать значения, попавшие в неровный «хвост», и получать новые. Наш генератор так и делает, поэтому у каждого числа в вашем диапазоне одинаковый шанс при каждом розыгрыше.
Те же соображения отсеивают и варианты, к которым прибегают первым делом. Math.random() ничего не обещает в отношении безопасности, а функции электронных таблиц, такие как RAND() и RANDBETWEEN(), относятся к тому же классу: они годятся, чтобы что-то приблизительно перемешать, но не для результата, который кто-то может оспорить.
Числа, списки и кубики
Генератор случайных чисел возвращает числа из заданного вами диапазона. Случайный выбор из списка работает со списком, который вы вставляете, — именами, заявками, вариантами, — так что не приходится вручную сопоставлять числа со строками. Для настольных игр кубик онлайн бросит кубики и посчитает сумму, а для выбора из двух вариантов достаточно подбросить монетку. Когда случайность должна что-то защищать, а не что-то решать, воспользуйтесь генератором надежных паролей. Все они берут случайность из одного и того же криптографически стойкого источника в вашем браузере.