Как правило, мы рекомендуем применять системный CRNG–генератор. Есть лишь три исключения из этого правила: когда вы пишете программу для системы, в которой такого генератора нет; когда имеется необходимость повторно воспроизвести поток случайных чисел и когда степень безопасности, гарантируемая системой, вас не устраивает (в частности, когда генерируются 192–или 256–битовые ключи в Windows с помощью стандартного криптографического провайдера).

Windows

В состав Windows CryptoAPI входит функция CryptGetRandom(), которую может реализовать любой криптографический провайдер. Это CRNG–генератор, который система часто затравливает новой энтропией.

Функция заполняет буфер указанным числом байтов. Вот простой пример, показывающий, как можно выбрать провайдера и с его помощью заполнить буфер: