private ArrayList<Integer> selectPondaratedRandomIndexesFromList(Integer number, List<Kanji> kanjis) {
		ArrayList<Pair<Double, Kanji>> weighedKanjis = new ArrayList<Pair<Double,Kanji>>();
		
		Double totalWeight = 0.;
		for(Kanji k : kanjis) {
			totalWeight += k.getWeight();
			weighedKanjis.add(new Pair<Double, Kanji>(totalWeight, k));
		}
		ArrayList<Integer> selected = new ArrayList<Integer>();
		Integer needed = number;
	
		while (selected.size() < number) {
			Double randDouble = Math.random() * totalWeight;
			for(Pair<Double, Kanji> p : weighedKanjis) {
				if(randDouble > p.getLeft()) {
					selected.add(kanjis.indexOf(p.getRight()));
					needed--;
			
					for(Pair<Double, Kanji> pp: weighedKanjis.subList(weighedKanjis.indexOf(p), weighedKanjis.size()-1)) {
						pp.setLeft(pp.getLeft()- p.getRight().getWeight());
					}
					
					weighedKanjis. remove(p);
					continue;
				}
			}
		}
		
		return selected;
	}