Generating random numbers in every iteration is expensive. We should have a worker that is able to take a vector of pre-generated random numbers.