1. 乱数生成の重要性とCSPRNG
乱数(Random Number)は予測不可能な値であり、暗号化・セキュリティ・ゲーム・シミュレーションに欠かせません。一般的な乱数生成器は擬似乱数(Pseudo-Random)であり、アルゴリズムで生成されるためシード値が分かれば予測が可能です。セキュリティが重要な場面ではCSPRNG(暗号論的に安全な擬似乱数生成器)を使用する必要があります。PHPのrandom_bytes()やrandom_int()はCSPRNGであり、/dev/urandomやCryptGenRandomを利用します。JavaScriptではcrypto.getRandomValues()が提供されており、ブラウザのエントロピー源を活用します。通常のMath.random()はセキュリティ用途には不向きであり、トークン・セッションID・暗号鍵の生成には絶対に使用してはいけません。