How exactly do testnet faucets work? I understand they have a preloaded budget. Is this correct? If so, if i wanted to make a testnet faucet where would this come from?
If you want to make a testnet facuet, you will have to mine test ETH. This isn't possible on a network like Kovan, because it is POA (proof of authority). You can mine test ETH on Ropsten and use that in testing your applications.
Setting it up would be extremely similar to mining on the mainnet. The only difference would be the network that you are pointing to.
Existing faucets have (likely) all mined their ETH, but have been doing it for so long and have been the majority of the hashing power on these networks that they have nearly all of the supply.