На этот вопрос уже есть ответ здесь:
В Java, учитывая n предметов, каждый с весом w , как выбрать случайный предмет из коллекции с шансом, равным w ?
Принять каждый вес является двойным от 0,0 до 1,0, и что веса в сумме сбора равны 1. Item.getWeight () возвращает вес элемента.