Database
[{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":23,"chapter":"b11"},{"index":25,"chapter":"b11"},{"index":26,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":27,"chapter":"b14"},{"index":28,"chapter":"b16"}]
Query
db.collection.aggregate([{"$match":{chapter:{$in:["b11","b14"]}}},{$group:{_id:null,chapter:{$addToSet:"$chapter"}}},{$set:{numPerChapter:{"$divide":[10,{$size:"$chapter"}]}}},{"$unwind":"$chapter"},{"$lookup":{"from":"collection","let":{numPerChapter:"$numPerChapter"},"localField":"chapter","foreignField":"chapter","pipeline":[{$set:{randKey:{"$rand":{}}}},{"$setWindowFields":{"sortBy":{"randKey":1},"output":{"rank":{$rank:{}}}}},{"$match":{$expr:{$lte:["$rank","$$numPerChapter"]}}},{"$unset":["randKey","rank"]}],"as":"picked"}},{"$unwind":"$picked"},{"$replaceRoot":{"newRoot":"$picked"}}])