C FAQに書いてあるからだろうけど、あれ20年以上前の文章で、いまどき下位ビットだから極端に周期が短い処理系とかないと思うんだけどね。
初心者が使う用途ならたいがい rand() % N で十分なはず。
「(int)((double)rand() / RAND_MAX * N)」 とか 「rand() >> 16」 とかバグってたりすることがあって、素直に rand() % N 使えよって感じになる。
むかしカルドセプトってゲームが乱数ルーチンバグって、偶数と奇数が交互にでるって現象があってネット上でやっぱり「こう書け」みたいに乱数ルーチン書いてる人がいたけど、そういう人たちもバグってるの多かったね。
むしろrand()がmt_rand()相当になってない処理系が未だにそんなにあるのか疑問なんだが。