実装だけなら適当なサイトのコピペで終わるので、 ソース例を見せながらご説明しますね。ソースは文末です。 今回はXorshiftで行いました。 基本的な情報系の知識はあるものとして、中級レベルから解説します。 まず、xor128(void)についてです。 なぜこの関数が乱数を発生させられるのか? 固定値しか帰ってこなさそうなのに。 通常、関数内で値を変更しても抜けたら無効となります。 しかし、static宣言することで、次回も保存しておけます。 この仕組みと、32bit符号無し整数、 シフト演算、排他的論理和の組み合わせで、 要は"適当な計算"をしてるのです。 ※ 本当に適当だと永久的かつランダムな乱数は発生しません。 本当は厳密に計算されて論文で裏づけされてます。 ここは論文レベルになるので、興味があれば調べてください。 以上の関数により、32bitの乱数が返ってきます。 次に、1~14の