Material to change values based on individual mesh

Hello! I seem to have ran into a wall I can not scale.
I have made a construction script that randomly scatters objects about the place. Kind of like the one in the BluePrints example map.

Now I wanted to make each spawned mesh instance have random color variations.

Is there any way to make the material generate a random value for the mesh it is applied on? Like how Substance Painter can generate a mesh ID map?

I could use a world projected noise map but it is impossible to hide the fact that it is a world projected noise map and it doesn’t create the feeling that each object has its own color.

I also found out I can use Dynamic Material Instances from the construction script, but wouldn’t that be more expensive on rendering than a simple shader, I mean are 1k instances with a dynamic material more expensive than with a non dynamic material?

Thanks in advance;
-M

A dynamic material instance only saves the available parameters it’s very low memory

would PerInstanceRandom be suitable…?