この問題を回避するコードは記述可能なのだが、ライブラリがそれを用意するべきだ。充分な長さだと思う読者もいるかもしれないが、適用分野によっては短い場合もある。線形合同法により乱数を生成する。このアルゴリズムは原始的であり、高速だが、あまりよい性質の乱数を生成してくれない。場合によっては乱数系列を推測されてしまう危険性もある。オンラインポーカーのシャフルにこの乱数を使い、もしユーザに次のカードを予測されてしまっては、大問題だ。一様な乱数しか生成してくれない。正規分布の乱数を生成させたい場合は、そのような分布になるよう、プログラムを記述しなくていけない。乱数ライブラリが追加された。利用可能になっている。ライブラリ使わなきゃ損だぜ。出る回数をカウントし、表示しなさい。場合はどうなるか検証してみなさい。非決定的な乱数生成器として「std::random_device」が用意されている。「非決定的」とは、次の値が一意に決まらないという意味だ。内部的にはハードウェアの状態や時刻を用いて実現している。「rnd()」をコールすると、乱数を生成してくれる。不思議に思った読者もいるかもしれない。その演算子をコールすることが出来るのだ。これを「ファンクタ」と呼ぶ。0;}上記は10個の乱数を生成し、表示するサンプルだ。演習問題:上記ソースコードをビルド・実行し、結果を確かめなさい。「std::random_device」は若干速度が遅いので、通常は決定的な乱数生成器を使用する。「決定的」とは、現在の値により次の値が一意に決まるという意味。擬似乱数とも呼ばれ、数学的に完全な乱数ではない。メルセンヌ・ツイスタなどがあり、選択することができる。線形合同法は大昔から使われていたアルゴリズムで、単純・高速ではあるが、乱数の質はあまり良くない。あるなど、高品質の乱数を高速に生成するように設計されている。用いた乱数生成について説明する。