int num = 2000;
int parts = 10;
Random rnd = new Random();
List<int> result = new List<int>();
for (int i = 0; i < parts - 1; i++)
{
int tmp = rnd.Next(0, num / 2);
if (tmp == 0) { i--; continue; }
result.Add(tmp);
num -= tmp;
}
result.Add(2000 - result.Sum());
result = result.OrderBy(i => Guid.NewGuid()).ToList();
Console.WriteLine(result.Sum());