public EntryGenerator<K, V> mixWithNulls(final float selectThisGenerator, final boolean mixWithNullKeys, final boolean mixWithNullValues) {
            assertTrue(selectThisGenerator >= 0 && selectThisGenerator < 1);
            if (!(mixWithNullKeys || mixWithNullValues)) {
                return EntryGenerator.this;
            }
            return new EntryGenerator<K, V>() {
                @Override
                public Map.Entry<K, V> get() {
                    RandomSource rnd = RandomSource.current();
                    if (rnd.nextFloat() < selectThisGenerator) {
                        return EntryGenerator.this.get();
                    } else {
                        boolean nullKey = mixWithNullKeys && rnd.nextBoolean();
                        boolean nullValue = mixWithNullValues && rnd.nextBoolean();
                        return new AbstractMap.SimpleImmutableEntry<>(nullKey ? null : EntryGenerator.this.get().getKey(),
                                nullValue ? null : EntryGenerator.this.get().getValue());
                    }
                }
            };
        }