Most sophisticated backtesting packages will let you do this sort of thing with a bit of programming - i.e. rank all buy signals and take top 5 etc.
From your comments you are looking to do a scan of the market some time after market open and rank all stocks based upon % change since yesterday's close and go long on a certain number of them?
To trade it: You'd need a data supply that covers all symbols you want to consider - on some sort of intraday snapshot basis.
To backtest it you'll need historical intraday data.
Amibroker, Rightedge, Wealthlab come to mind since they all let you do deep programming. You might be able to do a ranking system in Multicharts too.
You might also be able to do it in traders studio or trading blox but I'm not familiar with them.
The alternative is to write your own using any programming language.

I don't think Nasdaq offers historical top gainers/losers. In the old Wealth-lab it would be easily achievable with SetPositionPriority in the ChartScript.