Metapixel is a photo mosaic generator for Linux. (If you want to install it, a package is available in Ubuntu multiverse).
Now I had the following situation: The base image, to be tiled with the mosaic pieces, was one that contained large areas of the same color, each area being larger than several of the mosaic tiles. In addition, I wanted some (but only some) mosaic images to be used more than once, in a way so that I could influence the number of uses. I implemented this by intentionally duplicating these images in my metapixel library, using different names, and then using “–search global” to prohibit metapixel from deciding itself to repeat an image. The number of images in my library were exactly the same as those fitting into the final image, so I had complete control …
This situation lead to the problem that metapixel always placed the same images next to each other, which was of course optically unpleasant. (Note that this only happened because there were large monochrome areas in the base image, each covering mutiple mosaic tiles. The base image actually was two words of black text on white back.)
It did not help to fix this problem to rename the image files in a random way [instructions].
What did help best was to introduce “noise” into the base image: both light and dark gray dots, ca. 1/3 the mosaic piece height in diameter, at random locations in these monochrome areas and in such an amount that nearly no area the size of a mosaic piece goes without at least one dot. This noise will not be noticeable in the final mosaic image. Take care not to use too much of these dots, as this might affect the quality of the mosaic rendering of your actual subject.