private long generateInitialValue() {
        long result;
        LOCK.lock();
        try {
            do {
                result = RAND.nextLong() & MASK;
            } while (result > MAX_INITIAL);
        } finally {
            LOCK.unlock();
        }
        return result;
    }