@Override
	public List<Resident> applyFilter() {
		List<Resident> selected = new ArrayList<Resident>();
		Random random = new Random();
		
		int actualPopulationSize = population.size();
		while (selected.size() < actualPopulationSize * PopulationParameters.SELECTION_PRCT / 100){
			int firstIdx = random.nextInt(population.size());
			Resident first = population.get(firstIdx);
			int secondIdx = random.nextInt(population.size());
			Resident second = population.get(secondIdx);
			if (first.getResidentId() != second.getResidentId()){
				if (second.getScore()>first.getScore()){
					selected.add(second);
					population.remove(secondIdx);
				} else {
					selected.add(first);
					population.remove(firstIdx);
				}
			}
		}
		return selected;
	}