Есть такой jQuery плагин
Masonry. Не знаю насколько актуально его использование со всеми этими современными технологиями. Врядли вы сделаете это на css flexbox. Попробуйте css grid. Вот
статья (на английском), давно в закладках держу, но не успел прочесть и опробовать еще.