Мсье знает толк в извращениях!
Используйте всю силу
LIMIT
в вашем запросе:
SELECT * FROM posts p
INNER JOIN category c
ON p.id_category = c.id_category
ORDER BY RAND()
LIMIT 2
И возрадуйтесь простоте:
<?php foreach ($det_posts_random as $post) : ?>
<div class="col-md-6">
<div class="fav">
<a href="post.php?post_id=<?=$post['id']?>">
<img src="<?=$post['image']?>" style="width:250px; -webkit-clip-path: polygon(50% 0%, 100% 38%, 100% 100%, 0 100%, 0 0); clip-path: polygon(50% 0%, 100% 38%, 100% 100%, 0 100%, 0 0);">
</a>
<h3 class="hello">
<a href="post.php?post_id=<?=$post['id']?>" style="color: #3c3b35;"><?=$post['title']?> </a>
</h3>
</div>
</div>
<?php endforeach; ?>