De nos jours, vous devriez pouvoir utiliser le $sample
fonction d'agrégation.
Exemple (non testé) :
db.articles.aggregate([
{ $match : { topic : 3 } },
{ $sample : { size: 3 } }
])
Notez cependant qu'il peut renvoyer plusieurs fois le même document.