Генерация равномерно распределенных случайных чисел в JS - PullRequest
0 голосов
/ 11 марта 2020

В моем приложении у меня есть список слов, которые показываются пользователю одно за другим. Точное число может отличаться, но оно может составить около 10. Это нормально, если слова повторяются. Чтобы выбрать слово, которое я сейчас использую, Math.random

const select = (arr) => arr[Math.floor(Math.random() * arr.length)]

Проблема в том, что Math.random генерирует случайные числа, которые иногда могут образовывать кластеры, поэтому пользователь может видеть одни и те же слова несколько раз в строка. У меня есть простая проверка, что новое слово отличается от предыдущего, но я хочу улучшить его. Вопрос в том, как можно сделать случайные числа из этого диапазона (0 - arr.length-1) более распространенными, как если бы человек выбирал случайные слова (то есть они повторяли бы реже). Или, в данном конкретном случае, как заставить пользователя видеть как можно больше различных слов за заданное время?

...