Random dirt on materials

How can I have random sections of my material look dirty? I know I can do a number of operations (addition, multiplication, blends) on two different textures, but how can I randomize that? Ultimately, the goal is to apply the material to a wall or a floor. I understand that what I want can be done with decals, but I wanted to know if such a thing could be done at the material level too. Assume that I have access to a base texture, dirt textures of my choice, and the necessary normal maps.

Noise Textures and Lerps, maybe with Vertex Color control, and you could potentially offset these noise textures based on world location to get more pseudo randomness.