Thanks for the pointer to the external imageblock method. I knew I had seen it someplace but I was looking without success in the docs/ directory.
I'm a procedural kind of guy trying to survive in an object-oriented world, but if I do code a solution I'll offer it up. 
For the time being, I'm trying the external imageblock method you suggested. I can retrieve the block in a loop until I get four different random results, then filter out some of the hardcoded html (table width of 144 pixels, for instance) and combine the results into a new display of four side-by-side images. I'll cron the process rather than doing it on the fly, for performance reasons.
This solves my problem for "show four random images," but it doesn't get me where I really want to go, which would include four-up panels for "top ranked galleries, order by views desc" so in the long run extending the codebase would be preferable.
I can't show the site I'm developing, because it's under lock and key until launch, but if you look at how Yafro clusters images on the homepage you'll get the general idea of where I'm trying to go.