Given that users are free to take as few tickets as they want, you can't guarantee there will be even one winner.
For example, if everyone took between 1 and 4 tickets, there would be 0 winners. What are you going to do, force people to take tickets if they don't take enough? Are you going to force them to look at what they have?
On the other hand, it's trivial to put an upper limit on the number of possible winners - simply print only 20 'E's or 40 'P's and plenty of everything else.
If you want to have a high chance of at least 20 winners, you should print plenty of each type (with almost twice as many 'P's*). To improve the chances of more winners, you could encourage trading as well as taking large samples.
* though around 35.5% P's vs 21.5% each of the others might be better than 40:20 (in that it slightly improves the chances of winning, but perhaps even more importantly somewhat reduces the chance of 'so many P's' frustration for people who got say 6 P's, 2 L's and an E). This would suggest that out of every 60 tickets printing perhaps 13 each of A, E and L rather than 12, or out of every 100 tickets printing about 21 of each of A, E and L rather than 20 -- but it's not all that sensitive to it.
You can compute chances to win for a given number of tickets taken (without trading). I've just done some simulation experiments for the numbers I give below:
Note that if you had 1000 players, taking only 5 tickets each without trading would pretty much guarantee more than 20 winners (the individual chance to win is only about 4%, but 4% of 1000 is about 40 winners).
With 300 players, you want most people to take 6 tickets to be confident of more than 20 winners (with no trading).
If you had 100 players, to be pretty confident of getting 20 winners with no trading, they should take 8 tickets (though taking 7 tickets each gets you 20 winners reasonably often)
With trading some of those numbers can be lower (with more than 100 players you may well be able to get away with keeping people to 5 tickets each)
If players can take as many tickets as they want, and most people want to win, since almost everyone who wants to can win by taking say 20 tickets (about 90% chance to win without trading), you could easily have close to 1000 winners.
May I ask you how did you simulate that when there is a 300 players in total for 20 winners they must take 6 tickets, for 100 players 8 tickets
I assumed that you printed a very large number of tickets - enough that I could approximate hypergeometric probabilities by binomial ones. I did this so that I didn't need to know exactly how many tickets were printed - just that it was "plenty".
Then for a given number of players and a given number of tickets per person, I simulated sampling with replacement from the tickets "A" "E" "L" and "P" with respective probabilities like (0.2,0.2,0.2,0.4) (or whatever other arrangement of probabilities I was trying, perhaps (0.21,0.21,0.21,0.37), say). I then counted the number of winners based on whatever tickets every person got.
I tried it for say 5,6,...,12 tickets per person at a variety of different numbers of people.
I repeated that a small number of times (the results aren't so terribly variable for largish numbers of people - for n>20 but close to it the standard deviation will be around 4 or 5 or so, so if you see results like 32,37,28,33,36, you can be pretty confident the number of winners will nearly always be above 20 on repeated trials), and identified the smallest number of tickets-per-person that nearly always resulted in at least 20 winners.
This sort of thing is relatively simple to do in a language like R, even interactively.