Database
db={"people":[{"_id":1,"name":"alice","interests":["sports","cooking","travel"]},{"_id":2,"name":"bob","interests":["sports"]},{"_id":3,"name":"charlie","interests":["video gaming"]},{"_id":4,"name":"denise","interests":["road trip","cooking"]},{"_id":5,"name":"denise","interests":["road trip","cooking"]},{"_id":6,"name":"eric","interests":["travel","video gaming"]}]}
Query
db.people.aggregate([{"$match":{"name":"alice"}},{"$lookup":{"from":"people","let":{i:"$interests",id:"$_id"},"pipeline":[{"$match":{$expr:{$and:[/** exclude the person himself/herself*/{$ne:["$_id","$$id"]},/** find with some shared interest*/{$ne:[[],{"$setIntersection":["$interests","$$i"]}]}]}}},{$sample:{size:1}}],"as":"randomlyMatchedPeople"}}])