stdlib.h
では下記のように定義されています。
u_int32_t arc4random(void); void arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/); void arc4random_buf(void * /*buf*/, size_t /*nbytes*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); void arc4random_stir(void); u_int32_t arc4random_uniform(u_int32_t /*upper_bound*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
特定の範囲の乱数を求める際には、arc4random関数
を使うことができます。
//0から9までの値を取得する u_int32_t random = arc4random() % 10;
上記のコードではarc4random関数
で得た乱数の余剰を求めているため、arc4random関数
では生成される乱数にやや偏りが発生してしまいます。
事前に0から9までの値が欲しいということが分かっているのであれば、arc4random_uniform関数
を使うと良いでしょう。
//0から9までの値を取得する u_int32_t random = arc4random_uniform(10);