object-fit:cover + fixed layout у Freewall
А вообще все зависит от юзкейса. Навскидку, хорошего библиотечного решения для такой задачи я не нашел, поэтому я бы запилил с десяток fixed лейаутов для Freewall, на 3, 4, 5, 6, ... фото. Дальше вертикально их последовательно выставлять, рандомно подобранные.
Но алгоритм подбора последних 2-3 лейаутов, по хорошему, будет не так уж прост.
Если интересны детали -- могу развинуть тему.