もう少し詳しく

疑似乱数生成器ぎじらんすうせいせいき(PRNG、Pseudo-Random Number Generator)とは、一見ランダムに見える数値の並びを、決まった計算手順(アルゴリズム)で作り出す仕組みのことです。本当の意味でランダムな値ではなく、最初に与える「種しーど」(seed、初期値)が同じであれば、同じ計算手順から毎回同じ数値の並びが再現されます。見た目が複雑でも手順自体は決まっているため、種と計算手順さえ分かれば、生成された数値の並びを後から再現したり、先を予測したりできる点が特徴です。

どこで使われるか

ゲームのアイテム抽選やシミュレーション、統計分析のサンプリングさんぷりんぐなど、コンピュータ上で「ランダムらしい動き」を作りたい場面で広く使われています。再現性が必要な場面(同じ条件でテストを繰り返す場合など)では、むしろ種を固定して毎回同じ結果を出せる点が利点になります。一方で、暗号の鍵やトークンとーくんの生成など、第三者に予測されては困る場面では、通常のPRNGではなく、予測がより難しいよう専用に設計された「暗号論的に安全な乱数生成器」が使われます。

身近な例

スマートフォンのゲームでガチャやカードの並びを決める処理、WebサイトのA/Bテストえーびーてすとで利用者をランダムに振り分ける処理などの裏側で、何らかのPRNGが動いています。多くのプログラミング言語の標準機能にも、手軽に使えるPRNGがあらかじめ用意されています。

注意点

通常のPRNGは、暗号の鍵やパスワードの生成など、第三者に予測されては困る用途には向きません。種や計算手順の特徴から、後から数値の並びを解析・再現できてしまう場合があるためです。実際に、2026年にAnthropicが公表した研究では、米国の暗号規格NISTの楕円曲線暗号で使われていたパラメータの「種」が、1990年代のC言語の標準ライブラリに含まれる古いPRNG「lrand48」の出力だったことが判明しています。重要な暗号処理には、通常のPRNGではなく、専用に設計された安全な乱数生成器を使う必要があります。