Некоторые особенности генерации случайных чисел на разных платформах:
- В Linux для генерации псевдослучайных чисел используют алгоритм ChaCha20. habr.com Есть два способа взаимодействия со случайными числами: /dev/random и /dev/urandom. habr.com Первый блокируется, когда оценка по количеству энтропии становится ниже нуля, а второй выдаёт числа всегда, даже если пул не пополняется случайными битами. habr.com
- В Windows для генерации псевдослучайных чисел применяют алгоритм SP800-90 AES-CTR-DRBG. habr.com
- При виртуализации могут возникать проблемы с генерацией случайных чисел, так как многие источники случайных событий связаны с текущим состоянием машины. habr.com В Linux с этой проблемой иногда открыто признают, в Windows с Hyper-V пытаются с ней бороться, но она всё же иногда проявляется. habr.com
- Функция rand платформозависима. peltorator.ru По стандарту она генерирует случайное число от нуля до RANDMAX. peltorator.ru В Linux это число совпадает с максимальным числом, которое может храниться в типе int, а в Windows RANDMAX равен 32767. peltorator.ru
Для решения некоторых из перечисленных проблем используют платформенно-независимые генераторы случайных чисел, например mt19937, который генерирует одни и те же числа (при фиксированном сиде) на любой платформе. peltorator.ru