If you aren't doing so already, you should look into if your card has virtual cards. Capital One for example does. I think it would make your current process easier.
It looks like Capital One does this via a Chrome extension, which you have to install (and which can presumably look over your shoulder to see all of the shopping websites you visit). I might consider installing this, deactivating it by default, and then only enabling it when I want to make a purchase. But I was hoping there would be a simple number generator in the mobile app. I guess that would be too easy!
I use Privacy[1] for this and would highly recommend the service to anybody using a bank that doesn't have an easy and convenient way to issue disposable card numbers (most US banks).