rem: word32 x; word32 lim;
add: uint32_t x; uint32_t lim;
context: irand_mod (struct irand_state *r, word32 n){  word32 x;  word32 lim;  if (!++n)    return irand32 (r);  lim = -n % n;			/* == (2**32-n) % n == 2**32 % n */  do    {      x = irand32 (r);    }  while (x < lim);  return x % n;}