public void reduce(int siz){
		if(siz>len)return;
		reduced = true;
		double[] array = new double[siz];
		PossibleHand[] result = new PossibleHand[siz];
		for(int i=0;i<siz;i++){
			array[i] = generator.nextDouble();
		}
		Arrays.sort(array);
		int index = 0;
		double aggr = 0.0;
		for(int i=0;i<len;i++){
			aggr+=hand[i].prob;
			while(index<siz && array[index]<aggr){
				result[index] = hand[i];
				index++;
			}
		}
		while(index<siz){
			result[index]=hand[len-1];
			index++;
		}
		for(int i=0;i<siz;i++){
			hand[i]=result[i].clone();
			hand[i].prob=1.0/siz;
		}
		len = siz;
		normalized = true;
		indexUpdated = false;
		positionUpdated = false;
		sorted = false;
		return;
	}