Database

[{_id:1,items:["aaa","bbb","ccc","ddd","eee"]}]

Query

db.collection.update({},[{$addFields:{items:{$map:{input:{$reduce:{input:{$map:{input:"$items",in:{value:"$$this",sortVal:{$rand:{}}}}},initialValue:[],in:{$switch:{branches:[{case:{$lt:["$$this.sortVal",0.333]},then:{$concatArrays:["$$value",["$$this"]]},},{case:{$lt:["$$this.sortVal",0.6666]},then:{$concatArrays:[["$$this"],"$$value",]}}],default:{$concatArrays:[{$slice:["$$value",{$round:{$divide:[{$size:"$$value"},2]}}]},["$$this"],{$slice:["$$value",{$round:{$divide:[{$size:"$$value"},2]}},{$add:[{$size:"$$value"},1]}]}]}}}}},in:"$$this.value"}}}}])

Result