How to deterministically generate large number of bitcoin addresses and monitor them
One options would be a bitcoinJ - bitcoin java library. 

new ECKey().toAddress(new MainNetParams()).toString();

gives you a valid bitcoin address.