Запускаете рекурсию, каждый раз берете рандом от остатка предыдущего рандома , начальное рандомное число будет в пределах вашей суммы , можно исключить 0 ( решение в лоб, как вариант)
А что мешает сделать position : absolute и начинать их двигать по x и y рандомно в пределах допустимых значений? Линейная геометрия y=k*x+c не или по по формуле окружности или квадратичная функция