How to affect a random Texture to faces..? Blender v5.0.1

I have a mesh of a building (a castle level…), to which I wish to apply a Texture to each face, taken from a Png file. The result would be similar Textures on all walls, but with randomly different slight details (a bit of moss, a hanging picture, a wide crack; the list is long…). I use, in my modelling, one single Png image, with a grid of candidate images for each wall face. I’m looking for a method (python script…?) to affect one of the numbered squares from the image to each of the 3000 faces of these walls. Doing this by hand, UV by UV, would be painstaking, but this is simply a sample of the many other walls of a castle dungeon I wish to texturise in this manner. I’m sure that it’s possible, and maybe even easy for some; I would be happy to receive either a sketch of a method to employ, or a (semi-)complete solution that I may adopt. Thanks in advance; screenshots of the raw faces concerned, and a numbered Png file are attached. Once I have the method, I will use it to do the same randomising for the Floor of the castle, but here only the walls have been numbered (96 variations…)

The Wall faces…

Walls

The Texture image …

You could do it in a shader by scaling the UV faces to the size of a single square and then randomize the positions. I would give an example but I’m busy on my own project at the moment.

You can try “hotspot” technique.