Since NFTs on Cardano do not belong to a contract, how can token holders be rewarded with an airdrop? Do they need to request it themselves by showing proof of ownership?
It is very easy to do. All NFTs are named [poliyID].[TokenName]. Simply put that into cardanoscan.io and you can see the wallet that holds any particular NFT. You then just mint (airdrop) a new token into that wallet. Done.
Take for example this blockowl:
If you put the above into CardanoScan and click Top Holders, you will find the wallet it lives in: