public final double doOperation(){
  List<Integer> allIndices=new ArrayList<Integer>(masterList);
  int left, right;
  for (int i=0; i < size; i++) {
    left=allIndices.remove(MathUtils.nextInt(allIndices.size()));
    right=allIndices.remove(MathUtils.nextInt(allIndices.size()));
    double value1=parameter.getParameterValue(left);
    double value2=parameter.getParameterValue(right);
    parameter.setParameterValue(left,value2);
    parameter.setParameterValue(right,value1);
  }
  return 0.0;
}

public final double doOperation ( ) { List < Integer > allIndices = new ArrayList < Integer > ( masterList ) ; int left , right ; for ( int i = 0 ; i < size ; i ++ ) { left = allIndices . remove ( MathUtils . nextInt ( allIndices . size ( ) ) ) ; right = allIndices . remove ( MathUtils . nextInt ( allIndices . size ( ) ) ) ; double value1 = parameter . getParameterValue ( left ) ; double value2 = parameter . getParameterValue ( right ) ; parameter . setParameterValue ( left , value2 ) ; parameter . setParameterValue ( right , value1 ) ; } return 0.0 ; }
swap the values in two random parameter slots .
