Depending on the purpose of the exercise and what comes next there are two, at least, ways to approach this.
One way is to create group total of occurrences. An approach:
data group;
status='Vaccination';
disease = rand('Binomial',0.05,1000);
output;
status='Placebo';
disease = rand('Binomial',0.15,1000);
output;
run;
And you might look at the results:
Proc print data=group noobs;
var status disease;
run;
Another approach would be to simulate individual records with vaccination status and disease result for each. The Bernoulli distribution is a single event trial. Binomial distribution is the result of multiple Bernoulli trials.
So perhaps:
data individuals;
Status='Vaccination';
do id=1 to 1000;
disease = rand('Bernoulli',0.05);
output;
end;
Status='Placebo';
do id=1001 to 2000;
disease = rand('Bernoulli',0.15);
output;
end;
run;
proc means data=individuals sum;
class status;
var disease;
run;
Which approach is "better" really comes in what is next. Consider if you want to also include another random factor such as age, ethnicity, or hair color. To use the group approach you would have to have some idea of the rate for those along with the vaccination status.
But if I am given some other information such as 20% of the population is category 1, 30% is category 2 and 50% is category 3 we can create a random sample of individuals using one of the other random functions:
data individuals;
Status='Vaccination';
do id=1 to 1000;
disease = rand('Bernoulli',0.05);
category = rand('Table',0.2,0.3,0.4);
output;
end;
Status='Placebo';
do id=1001 to 2000;
disease = rand('Bernoulli',0.15);
category = rand('Table',0.2,0.3,0.4);
output;
end;
run;