diff --git a/rng.h b/rng.h index 20d4871..8033353 100644 --- a/rng.h +++ b/rng.h @@ -60,7 +60,7 @@ class Xoroshiro128Random if (n <=0) return 0; int r = (int)((n & -n) == n ? (nextLong() & n) - 1 // power of two : (unsigned long long)(((unsigned long long)nextLong() >> 32) * n) >> 32); - return r < 0 ? 0 : r; + return r >= 0 && r < n ? r : 0; } long long nextLong() {