и какой из двух вариантов сдвинет указатель 2*3 или 3*2?
Ваши числа сойдутся только до 12 следующим по порядку будет 14, что не является регулярным числом
spread([1, 1, 1, 1, 1], 7); // [3, 3, 3, 2, 1], хотя должно быть [3, 3, 2, 2, 2]
bins.forEach(key => result[key] += diff);
Можно вместо этого в конце всем затронутым числам дать склько нужно до последнего.