| `Random.nextInt() % n` has | |
| * a 1/n chance of being 0 | |
| * a 1/2n chance of being each number from `1` to `n-1` inclusive | |
| * a 1/2n chance of being each number from `-1` to `-(n-1)` inclusive | |
| Many users expect a uniformly distributed random integer between `0` and `n-1` | |
| inclusive, but you must use random.nextInt(n) to get that behavior. If the | |
| original behavior is truly desired, use `(random.nextBoolean() ? 1 : -1) * | |
| random.nextInt(n)`. |