code: @Override
      public boolean mutate(double[] genes) {
          boolean hasMutation = false;
  
          for (int i = 0; i < genes.length; ++i) {
              if (rng.nextDouble() < mutationRate) {
                  genes[i] = rng.nextDouble();
                  hasMutation = true;
              }
          }
  
          return hasMutation;
      }
docs: Performs the mutation. Each gene has a <i>mutation rate</i> probability of being mutated.
  
  @param genes The genes to be mutated
  @return True if the genes were mutated, otherwise false.