             .aggregate()
             .match(queryParams)
             .project(selection)
-            .limit(5000)
             .sort({'submitDate': -1})
+            .limit(sortLimit)
             .skip(ogresSkipCount)
             .limit(1)
           query.exec (err, otherSession) =>

      unless numberOfHumans
        res.send(204, 'No games to score.')
        return res.end()
      humanSkipCount = Math.floor(Math.random() * numberOfHumans)
      ogreCountParams =
        'levelID': levelID

        unless numberOfOgres
          res.send(204, 'No games to score.')
          return res.end()
        numberOfOgres = Math.min numberOfOgres, sortLimit
        ogresSkipCount = Math.floor(Math.random() * numberOfOgres)

        query = LevelSession
          .aggregate()
          .match(queryParams)
          .project(selection)
          .sort({'submitDate': -1})
          .limit(sortLimit)
          .skip(humanSkipCount)
          .limit(1)
        query.exec (err, randomSession) =>
