How to setup an airdrop?

If I am understanding it correctly, I want to deploy a contract to send my existing tokens I want airdropped. I would then use the metamask plugin to connect to my website with the new contract's ABI and they could call the airdrop function of the contract from there? Am I understanding this right and is there an example contract I can look at?

you are right. you can use Web3.js and Metamask API to interacting with your contracts.

Any idea where I can find a template contract for the airdrop?