You could just give every power up its own propability for example powerup1 has a chance of 0.01 and a probability that no powerups drop.
After that you could just use Math.random method and get a value that you use to determine what powerup drops.
So Every powerup that extends PowerUps class should have probability value (from 0 to 1). Then you use Math.random and
check if it matches with any probabilites that your powerups have.
Rough example in code:
if(Math.random() == powerup.getProbability()){
//Create powerup
}else if(Math.random() == powerup2.getProbability){
//Create powerup2
}
This method might not be the best, but it works. As for the placement I can’t help.