RAND_MAX ist ein Makro, das dazu dient, magische Zahlen wie 65535 aus dem Code zu halten. Es kann incht umdefiniert werden (bzw. hat nicht den gewünschten Effekt).
Eine 24-bit Zufallszahl bekommst du mit
uint32_t x = (uint32_t) rand() ^ (rand() <<;
Und modulo finde ich nicht unelegant, allerdings ist damit die Gleichverteilung flöten.
Lesezeichen