The good news is that what you want is doable. I'm going to link you a 10 minute video that breaks down a different kind of stone wall, but has many of the techniques you will want to use.
https://www.youtube.com/watch?v=wBX6l8RqrT0Here is the important core for what you want, though:

The Tile Random node will give you the kind of blocks you're looking for. I then run it through a Flood Fill node, then Flood Fill to Random Color. I feed this through a Distance node as an optional step to get rid of the gaps, then go to RGBA Split. This gives me four different greyscale masks. These can be used to create the kind of height variation you have in your picture, or to control the strength of different effects on different blocks, be it color, different amounts of grain, etc.
Really, I would watch that breakdown all the way through (it's really quite short), then go back and pause at parts if you need a refresher while doing it yourself.