Is it possible to code random airdrops into the smart contract

Is it possible to code random Airdrops into the smart contract? For example 2 random airdrops to the holders per month?

I think making a safe random number is difficult and the same to make an airdrops, so if you want to achieve a contract with these two features, maybe really a little complex.