Справочник языка
RANDOMIZE
Последовательность RND воспроизводима только тогда, когда генератор стартует из одного и того же состояния. Задать это состояние заново позволяет RANDOMIZE: с числовым аргументом он заменяет зерно генератора, без аргумента оставляет текущее состояние нетронутым.
Синтаксис
RANDOMIZERANDOMIZE <начальное значение>
Обе формы работают в консольных и графических программах и действуют на генератор текущей среды исполнения; собственного значения оператор не возвращает.
Начальное значение
Зерно должно иметь тип INTEGER или LONG, но укладываться в диапазон INTEGER: от −2147483648 до 2147483647. Отрицательное зерно допустимо. Переданное число заменяет состояние генератора, поэтому следующие вызовы RND начинают новую последовательность; форма без параметра состояние не меняет.
Воспроизводимость
Повторный вызов с тем же зерном повторяет последовательность в текущей среде. Совпадение конкретных чисел между версиями .NET договором языка не является.
Диагностика
Несовместимый тип параметра отклоняется при компиляции, а LONG вне диапазона INTEGER вызывает MB3008.
Пример
Два запуска с одним зерном дают одно и то же первое число:
RANDOMIZE 42
DIM first AS DOUBLE = RND()
RANDOMIZE 42
PRINT RND() = firstОжидаемый вывод:
TRUEПеременная first сохраняет первое значение до повторной инициализации, поэтому сравнение подтверждает, что после второго RANDOMIZE генератор начал ту же последовательность.