.cat() / .stack() distributions (e.g. Normal distribution)

Is there a way to merge the distributions without having to create them separately with sample() and then, stacking them? The assumption is that you want to have vectors with values that come from different distribution (not necessarily normal)