RandomModInteger
Use Random.nextInt(int). Random.nextInt() % n can have negative results

Category
JDK
Severity
ERROR
Maturity

The problem

Random.nextInt() % n has

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).

Suppression

Suppress false positives by adding an @SuppressWarnings("RandomModInteger") annotation to the enclosing element.