code: @Override
      public int nextInt() {
          long oldState = state;
  
          state = oldState * MULTIPLIER + inc;
          int xorShifted = (int) (((oldState >>> 18) ^ oldState) >>> 27);
          int rot = (int) (oldState >>> 59);
          return Integer.rotateRight(xorShifted, rot);
      }
docs: Returns the next pseudorandom, approximately uniformly distributed {@code int}
  value from this random number generator's sequence. The general
  contract of {@code nextInt} is that one {@code int} value is
  pseudorandomly generated and returned. All 2<font size="-1"><sup>32
  </sup></font> possible {@code int} values are produced with
  (approximately) equal probability.
  
  @see java.util.Random#nextInt()