Значение переменной может поменяться, только если ты сознательно присваиваешь этой переменной новое значение. Никто не мешает тебе присвоить значение переменной ОДИН раз в начале программы и больше в своём коде нигде значение переменной не менять.
Разумеется, при другом запуске этой программы значение будет другим.
Если же тебе ВСЕГДА - при каждом запуске - надо одно и то же значение, то причём здесь "случайное число"?
Оно как бы так и происходит обычно.
Создается случайное число.
Затем ты его используешь, пока где-то в ходе выполнения программы ты его не меняешь. Само по себе оно не поменяется.
Можно еще добавить, что есть разница, генерируешь ты это число в цикле или вне его. Если сгенерировать вне цикла, то число не будет меняться. Если же в цикле, то будет при каждом круге цикла.
Причем это может быть любое значение, а не только число.