Suppose that I have a number of variables. Each is known to be Gaussian or uniformly random with known parameters and occur with a known probability. I also have a table of correlations (or covariances if that's easier) for each one. It would be great if these parameters could come from any kind of distribution, but if not, uniform and Gaussian are fine for my interests.
So, a typical problem case would be A is Gaussian with mean a1 and variance a2; B is uniform with maximum b1 and minimum b2. C is Gaussian with mean c1 and variance c2. Then I have a table of correlations A with B, A with C and B with C.
How would I write an algorithm to generate a sample of random vectors (A,B,C) which satisfy the above properties. Again, it would be really great if the variables could come from any kind of distribution, but I would settle for at least Gaussian only, uniform only or a mixture of Gaussian and uniform variables.
It would be nice to have an approach that would scale up easily.
I would like to implement this myself, rather than use some predefined package. So, I'm interested in algorithmic details.