public static <T> List<T> randomSelectR(List<T> list, int n) {
        if (n == 0) {
            return Collections.emptyList();
        }
        Object[] objects = P20.removeAt0(list, new Random().nextInt(list.size()));
        List<T> remaining = (List<T>) objects[0];
        T t = (T) objects[1];
        List<T> result = new ArrayList<>();
        result.add(t);
        result.addAll(randomSelectR(remaining, n - 1));
        return result;
    }
(**) Extract a given number of randomly selected elements from a list
java8/src/main/java/com/shekhargulati/ninetynine_problems/_01_lists/P23.java