code: public int[] getRandomNextPermutation() {
          int d = maxRank - currentRank;
          int r = this.random.nextInt(d);
          this.currentRank += Math.max(1, r);
          return this.getCurrentPermutation();
      }
docs: Randomly skip ahead in the list of permutations.
  
  @return a permutation in the range (current, N!)