public List<Integer> genDistinct(int len, int range) {
        if (range < len) {
            System.out.println("The range is too small to generate distinct list");
            return null;
        }

        List<Integer> list = new ArrayList<>();
        HashSet<Integer> tmp = new HashSet<>();

        int idx = 0;
        while (idx < len) {
            int value = RAND_.nextInt(range);
            if (tmp.contains(value))    // skip if exists
                continue;

            list.add(value);
            tmp.add(value);
            ++idx;
        }

        return list;
    }