I just came up with a new way (I think it’s new anyway) to randomize particle color.
Add a particle info node and link the index to a math node. The math node should be (index / # of particles)…AKA a division setting. This will result in the particles being random if they are all made on the same frame, but this is the magic that could even be expanded with other techniques to make it more random, because no 2 particles will have the same index number, and therefore no two particles’ random number in the 0 --> 1 range (index / # of particles) will be the same. Here is a picture of the technique at work. Note that I had to explicitly say that I was using 1000 particles, but this could be linked with a driver or python script if you find that easier.