         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)
-          .limit(5000)
           .sort({'submitDate': -1})
+          .limit(sortLimit)
           .skip(humanSkipCount)
           .limit(1)
         query.exec (err, randomSession) =>

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

  ogresGameID = req.body.ogresGameID
  ladderGameIDs = ['greed', 'criss-cross', 'brawlwood', 'dungeon-arena', 'gold-rush', 'sky-span', 'dueling-grounds', 'cavern-survival', 'multiplayer-treasure-grove']
  levelID = _.sample ladderGameIDs
  sortLimit = 5000
  unless ogresGameID and humansGameID
    #fetch random games here
    queryParams =
