Consider the following code where we first take 1000 independent samples from a Poisson distribution, and then take 1000 independent samples from 1000 different Poisson distributions:
list = RandomVariate[NormalDistribution[0.5, 0.1],1000]; RandomVariate[PoissonDistribution[0.5], 1000] // Timing // First RandomVariate[PoissonDistribution[#]] & /@ list // Timing // First
which on my machine outputs something like
Note that it obviously doesn't matter if
list contains different numbers or identical numbers.
RandomVariate has some kind of overhead. Is there a way to improve the efficiency of sampling from a list of distributions that vary only in their parameters?