So, as the title states, I'm trying to generate a true random series that sums to 1. In essence, this should be very easy right? Well, I have many problems. Here's what I need: 20 asset classes, which must sum to 100% of a portfolio. All asset classes must return random variables between 0 and 100. So far, I've generated 19 random variables between 0 and 1, and then bound my results to get them to sum to 1 (fairly simply, simply sort your series, then subtract your interim numbers from each other and subtract your last number from 1, this bounds all of your results to 1 in a random manner).
My problem here, is that doing this will almost never create a situation where I have for example 90% in asset class 1, or 9 or whatever. By generating 20 classes, this forces all classes to be relatively small all the time.
I have been racking my brain on ways around this, be it by cascading the random series, shuffling the order, etc. But I always end up with one bias or another. I can't imagine that I'm the first person to need this type of random distribution so I imagine there is a solution out there, but I can't find it.
Any help would be greatly appreciated. For reference, I need this for a Montecarlo type simulation that I am running with Excel and a Frontline Optimisation module. I'm open to doing this in Matlab if it's more efficient as well.
Ultimately I would like to generate 1 million or more of these random portfolios and measure their outcomes.
Thanks
First I don't understand what asset classes are. But what I can tell you is: if all your random variables are independent, you can't expect their sum equal to a given number because it is a less likely event. You may have them to have a math expectation to be a given number, but it doesn't mean that when you generate values for them, their sum equal to their math expectation.
In concept, you have to assume one of the variables are dependent so they can sum up and equal to a given number.