Note that a random generator generates a new random number u_n based only on its previous value u_{n-1}.
What srand() function does is only set the value of u_{n-1} with a prescribed value given by the user.
So, if you want to manage several random generators in an expression, you just have to manage a vector of different ‘seeds’, like this:
# Manage 8 different random generators:
begin(
seeds = vector8();
fill(seeds,k,k*u);
);
uk(k) = (
srand(seeds[k]);
seeds[k] = u;
);
srandk(k,value) = (
seeds[k] = value;
);