Предположим, что числа нужны целые неотрицательные. Если числа могут быть нулевыми, делаете так:
n1=irand(501); // от 0 до 500
n2=irand(501); // от 0 до 500
n3=irand(501); // от 0 до 500
sort(n1,n2,n3); // сортируете по возрастанию любым подходящим способом
x0=n1; x1=n2-n1; x3=n3-n2; x4=500-n3;
Если числа могут быть только положительными, то поступаете аналогично:
n1=irand(497); // от 0 до 496
n2=irand(497); // от 0 до 496
n3=irand(497); // от 0 до 496
sort(n1,n2,n3); // сортируете по возрастанию любым подходящим способом
x0=n1+1; x1=n2-n1+1; x3=n3-n2+1; x4=496-n3+1;
Распределение будет слегка неравномерным (наборы, содержащие нули в первом случае и единицы - во втором, будут встречаться чуть реже), но и это можно исправить, слегка усложнив программу.