docs: @Override
    public Iterator<T> iterator() {
      final List<T> shuffledList = Lists.newArrayList(data);
      Collections.shuffle(shuffledList, rng);
      return Collections.unmodifiableList(shuffledList).iterator();
    }