Несколько методов генерации уникальных последовательностей цифр без повторений:
Использование обратной версии метода Йейтса-Фишера. stackoverflow.com Позволяет случайно выбирать значения из большого набора, удалять их из оставшихся значений и вставлять в новый массив. stackoverflow.com Для этого нужно выбрать случайное местоположение в исходном наборе, получить его значение, заменить его значение верхним элементом в исходном наборе, уменьшить размер исходного набора на единицу и повторять с исходным набором уменьшенного размера, пока не будет выбрано достаточное количество значений. stackoverflow.com
Генерация чисел со счётчиком. stackoverflow.com Этот метод предполагает, что при генерации каждого случайного числа в некоторые выбранные биты помещается счётчик в двоичном кодировании (переменная увеличивается каждый раз, когда генерируется следующее случайное число). stackoverflow.com Затем счётчик делится на отдельные биты и помещается в несколько менее значимых битов сгенерированного числа. stackoverflow.com Так можно гарантировать, что каждый раз будет получен уникальный номер. stackoverflow.com
Использование блочного шифра. qna.habr.com Нужно шифровать на одинаковом ключе порядковые числа блочным шифром с одинаковым ключом. qna.habr.com Если получилось значение большее чем N, следует отбросить образец. qna.habr.com Блочный шифр с одинаковым ключом обеспечит неповторяемость создаваемых чисел. qna.habr.com
Удаление числа из массива после выборки. dzen.ru После выборки число убирается из массива сразу, чтобы в следующей выборке оно гарантированно отсутствовало. dzen.ru
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.