You could do this using dynamic parameters. I’m not sure what your set up is, so I don’t know exactly how they should interact, but if you use a Dynamic Parameter node in your material to add an offset, and then set that randomly with the Dynamic Parameter module in the particle emitter, you should be able to get the control that you need.