You’re passing a VALUE, that gets evaluated only once, when the Simulation is built. You have to pass a function, i.e. something that will wrap a block of code so that it will be evaluated every time needed.
You should probably use a ThreadLocalRandom
Why use headers for passing a single value? Just use header.