With one material shared between all the rectangles, you can add randomized attributes, as long as each rectangle is a separate mesh object.
The trick is using the Object Info Node with the Random output as a factor in texture position as well as in a colour overlay.
Here's the modified Material node tree. All collapsed nodes are unchanged from the original material from the original question.
Here's a sample screenshot of the single material across the 48 rectangular meshes (16 groups of 3). It demonstrates the randomization of the colour overlay as well as the shift in Texture coordinates.
The colour overlay is easier to explain. You take the Random value into the Factor of a Colour Ramp and then mix that over top of your base colour. The Random value will apply a different position value from the colour ramp to each of the mesh objects, giving you the colour variation you need. Adjust the colour ramp to make it as subtle as you want.
Randomizing Texture Position
This part is a little trickier. Essentially we want to modify the X and Y values of the Texture Coordinate. It's important to know that Adding to these values moves the textures, and Multiplying a number by these values Scales the Texture Coordinates. We don't want to scale here, we just want to randomly change the X and Y values of the coordinates.
The problem is that we can't do this with the Mapping node, so we need some math nodes.
- First we take the output of the Mapping Node and split the XYZ values with a Separate XYZ node.
- Then we add the Random value to the X and the Y values
- Then we use the Combine XYZ node to combine the altered XY values with the unchanged Z value.
- At this point we pipe the vector output into the rest of the node tree as was originally set up.
This way we are adding a random integer to the X and Y value and shifting the texture coordinates for each mesh that uses our single material.
Note: In this example I did not randomize the Glossy material, although you could certainly do that as well.
Tip: If you want to learn more about modifying texture coordinates, I would highly recommend Bartek Skorupa's video: "Manipulating Texture Coordinates Like A Boss"