Rustには、 rand crateを通じて乱数生成機能を提供する機能が組み込まれています。 Rust標準ライブラリの一部として、 Randクレートの機能が分離され、Rustプロジェクトの残りの部分とは別にその開発が安定するようになりました。このトピックでは、単にrand crateを追加してから、Rustで乱数を生成して出力する方法について説明します。
スレッドローカルストレージに格納された各スレッドに関連付けられたRNGの組み込みサポートがあります。このRNGはthread_rng
経由でアクセスすることも、 random
暗黙的に使用することもできます。このRNGは、通常、Unixシステムではオペレーティングシステムの乱数発生源(例えば、 /dev/urandom
からランダムにシードされ、32 KiBのランダムデータを生成した後、このソースから自動的に再シードされます。
暗号化の目的でエントロピーソースを必要とするアプリケーションでは、オペレーティングシステムが提供するソース(Unixでは/dev/urandom
、WindowsではCryptGenRandom()
からランダム性を読み取るOsRng
使用する必要があります。このモジュールによって提供される他の乱数生成器は、そのような目的には適していません。