In theory, any of those (plus others you haven't mentioned, like the open source alternatives Gimp and Inkscape) let you design a business card. If you are particularly proficient with one of them, you might want to consider going for that one to save time. While the three Adobe products have some similarities of use, they all require some learning time. If you have the time, I'd definitely recommend you pick one (spoilers: It's Illustrator).
InDesign's specific purpose is laying out printed materials. That's its strength, you can see it as a way of joining Photoshop and Illustrator elements into a new 'thing'. However, where it shines is with multiple pages (tools like text wrap are extremely powerful). Good thing is: It packages fonts and images all in one file, but file size will generally also tend to be bigger, so in your case it might be a bit of an overkill. Yes, you could use InDesign, but you will be missing drawing features.
Photoshop is best for creating and editing photos or raster images. Its main 'power' comes with its image manipulation possibilities. It is not made for printing. Think of it more as a way to edit pictures you want to then add into printing materials. So, you could use Photoshop, but then you'd have issues preparing the files for the printer.
Illustrator is used for illustrations, logos, and scalable graphics in general. It's also widely used in printing, but not for multipage documents like InDesign, as it has no support for master pages and it doesn't let you automate page numbers. Illustrator's drawing capabilities are closer to Photoshop, but 'better' for non-raster illustrations. You can do anything you can in Photoshop - illustration-wise - and you will be able to get everything ready for production in no time.
So, in short, I'd say most cards get designed in Illustrator.