docs: public int getRandomID() {
          //Compute the width of the partition...
          int partitionWidth;
          if (lowerID < upperID) partitionWidth = upperID - lowerID; //... for "proper" ranges
          else partitionWidth = (idUpperBound - lowerID) + upperID; //... and those that "wrap around"
          Preconditions.checkArgument(partitionWidth > 0, partitionWidth);
          return (random.nextInt(partitionWidth) + lowerID) % idUpperBound;
      }