public static Field fakerField(final String name,
                                   final Function<Faker, String> fakerFunction) {
        try {
            Objects.requireNonNull(name);
            Objects.requireNonNull(fakerFunction);
            return new Field(name, (random, faker) -> {
//                synchronized (Faker.class) {
                return fakerFunction.apply(faker);
//                }
            });
        } catch (Exception e) {
            throw new RuntimeException(
                    Utils.message("Error building fakerField, {}, {}", name, e.getMessage()), e);
        }
    }
Uses java-faker to produce values of various types.
See https://github.com/DiUS/java-faker
e.g.
<code>
fakerField("beer", faker -&gt; faker.beer().name(), Locale.UK)
</code>

@param name          The name of the field
@param fakerFunction The function to call on Faker
@return A new Field instance
stroom-test-common/src/main/java/stroom/test/common/data/DataGenerator.java