Как вариант можно так:
var a = 70;
var b = 15;
var result= [];
num = (a - (a % b)) / b;
for (i=0; i < num; i++) {
result.push(b);
}
if ((a % b) < b && (a % b) != 0) {
result.push((a % b));
}
console.log(result); // (5) [15, 15, 15, 15, 10]
Со случайными числами:
var a = 70;
var min = 5;
var max = 15;
var result = [];
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
while (a > 0) {
b = getRandomIntInclusive(min, max);
a = a - b;
if (a >= 0 ) {
result.push(b);
}
if (a < 0) {
b = b + a;
if (b < min) {
_t = min - b;
b = b + _t;
result.forEach(function(item, i) {
if ((item - _t) > min) {
result[i] = item - _t;
_t = 0;
}
});
}
result.push(b);
}
}
var result_sum = result.reduce(function(sum, current) {
return sum + current;
}, 0);
console.log('Сумма всех чисел: '+result_sum); // 70
console.log(result); // (7) [15, 6, 10, 7, 5, 15, 12]