pense en dos formas.
la primera con este metodo
Código:
int random= (int) (Math.random() * 100 + 1);
int number=0;
if (random > 90) {
number = 3;
} else if (random > 70 && random <= 90) {
number=2;
} else if (random <= 70) {
number=1;
}
random contiene un numero entre el 1 y el 100, dependiendo esos rangos se puede sacar el numero que necesitas, si random es mayor que 90 es decir un 10% se puede definir que es el numero 3 .
La otra es que crees un arreglo con 70 numeros 1 , 20 numeros 2 y 10 numeros 3 y con la formula que pongo en random obtengas la posicion de dicho arreglo.
espero haberme explicado bien, si ese no es el problema pon mas ejemplos.
saludos, pepe