private ArrayList<Integer> selectRandomIndexesFromList (Integer number, List<?> list) {
		ArrayList<Integer> selected = new ArrayList<Integer>();
		Integer needed = number;
		Integer available = list.size();
		Random rand = new Random();
		while (selected.size() < number) {
		   if( rand.nextDouble() < needed.doubleValue() / available.doubleValue() ) {
		      selected.add(available-1);
		      needed--;
		   }
		   available--;
		}
		
		return selected;
	}