How do I generate a new wallet address for a transaction, like in Bitcoin?

This is not necessary with Monero, you only ever need one receiving address. A new receiving address is created automatically for every transaction, inside the program.