And you don't need an array to repeat an image map, just check repeat XY in the shader. And have it multiplied by a world (transform shader) fractal for some random variation in tints. And better still, make two image maps and mix them (merge shader or mix color (blue node), depends on whether there's displacement in it too (then merge shader)) by some world fractal.
Multiplying by blue node would kill displacement, but you could use a merge shader for that.