# C# dividing a number into 24 random pieces/shares

Hey guys,

I'm trying to figure out the easiest way to divide a number into 24 parts, but completely random.

For example, if the number is 15,500 how would I be able to divide it up randomly into 24 parts like this:

1. 253
2. 442
3. 101
4. 788
5. 2,232
etc....

The sum of these 24 random pieces should = 15,500.

Any thoughts?
###### Who is Participating?

Full stack Software EngineerCommented:
here it is:
``````        static Random rand = new Random();
public static IEnumerable<int> Split(Int32 val, int parts)
{
int left = val;
for (int i = 0; i < parts - 1; i++)
{
var curr = rand.Next(1, left / parts);
yield return curr;
left -= curr;
}
yield return left;
}

static void Main(string[] args)
{
Int32 val = 15500;
var res = Split(val, 24);
int sum = 0;
foreach (var item in res)
{
Console.WriteLine(item);
sum += item;
}
var match = (sum == val);

}
``````
0

Full stack Software EngineerCommented:
should they all be different?
0

Author Commented:
yeah, all 24 pieces should be different random numbers that all add up to the desired larger number
0

Author Commented:
nice!!! thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.