public Gens mutate(int averageMutationCount) {
    if (averageMutationCount > 0) {
      // with mutation

      int commonMutagen = myValues.stream().mapToInt(Value::getMutagenFactor).sum();

      for (Value value : myValues) {
        if (Utils.getRandomLess(commonMutagen) < value.getMutagenFactor() * averageMutationCount) {
          final Object[] possibleValues = value.getPossibleValues();
          value.value = possibleValues[Utils.getRandomLess(possibleValues.length)];
        }
      }
    }
    return this;
  }
public Gens mutate(int averageMutationCount)