public static Field randomNumberedValueField(final String name,
                                                 final String format,
                                                 final int maxNumberExc) {
        try {
            Objects.requireNonNull(format);
            Utils.checkArgument(maxNumberExc > 0, "maxNumberExc must be > 0");

            final ValueFunction valueFunction = (random, ignoredFaker) ->
                    String.format(format, random.nextInt(maxNumberExc));
            return new Field(name, valueFunction);
        } catch (Exception e) {
            throw new RuntimeException(Utils.message(
                    "Error building randomNumberedValueField, {}, {}", name, e.getMessage()), e);
        }
    }
@param name         Field name for use in the header
@param format       {@link String#format} compatible format containing a single
                    placeholder, e.g. "user-%s" or "user-%03d"
@param maxNumberExc A random number between 0 (inclusive) and maxNumberExc (exclusive) will
                    replace the %s in the format string
@return A complete {@link Field}
stroom-test-common/src/main/java/stroom/test/common/data/DataGenerator.java