Deine Idee ist gar nich so schlecht. Ich bringe es mal auf einen einfachen Punkt:

uint8_t zufall();

x=zufall();
if(x<25) then "mach was"

Wahrscheinlichkeit für "mach was" = 10%