Добавлю экзотическое заполнение.
Можно генерить любые числа рандомно (r) от 0 до 1 и поочерёдно заполнять переменные.
По шагам (на каждой строке r - генерируется только один раз):
1. (x+y+z+m+r<100)?(x+=r):break
2. (y+r<x&&x+y+z+m+r<=100)?y+=r:goto 1
3. (z+r<y&&x+y+z+m+r<=100)?z+=r:goto 1
4. (m+r<z&&x+y+z+m+r<=100)?m+=r:goto 1
5. goto 1
PS: Если избавиться от однотипных переменных в пользу массива, то получим сразу два бонуса:
1. Можно использовать простую рекурсию.
2. Набор количества значений в сумме - полностью произвольно-задаваемый.