+ rmax = td->o.use_os_rand ? OS_RAND_MAX : FRAND_MAX;
+
+ if (td->o.use_os_rand) {
+ rmax = OS_RAND_MAX;
+ r = os_random_long(&td->random_state);
+ } else {
+ rmax = FRAND_MAX;
+ r = __rand(&td->__random_state);
+ }
+
+ dprint(FD_RANDOM, "off rand %llu\n", r);
+
+ *b = (lastb - 1) * (r / ((unsigned long long) rmax + 1.0));