Простите, а почему у Вас сумма процентов = 180% ? Чуров, перелогиньтесь!
Если проценты круглые, то можно примерно так:
Делаем массив {1,1,1,2,2,2,2,3,3,4}. Делаем случайное целое число от 0 до 9 (берём float случайное число от 0 до 1, умножаем на 10, берём целую часть с округлением вниз). Используем это число как индекс в массиве, получаем номер выпавшего предмета.
Если проценты не круглые, то делаем float случайное число от 0 до 1. Потом по очереди отнимаем от него проценты вероятности выпадения предметов, пока не станет <=0
.
Если предметов очень много - то в массив записываем не сами вероятности, а сумму предшествующих вероятностей - и ищем методом половинного деления. Мне лень расписывать - но по отдельной просьбе могу набросать пример.