Buenas, para quien revise este hilo, el ejercicio 1 está bien resuelto. No obstante usar algo como numA = (int)(rnd.nextDouble()*11); parece poco elegante, en el sentido de que se genera un double para luego hacer un casting a un entero. ¿Por qué no generar directamente el entero y ahorrarnos el casting? Tampoco tiene demasiada importancia, pero ahí queda como reflexión.
En el ejercicio 2 además de lo indicado hay un defecto. El ejercicio pedía "que introduzca 6 números enteros comprendidos entre el 1 y el 49 ambos incluidos."
Por tanto los números válidos son del 1 al 49.
Sin embargo para crear los números ganadores en el código se utiliza
pNumerosGanadores[ i ] = (int) (rnd.nextDouble()*50);
¿Qué ocurre si el método nextDouble nos devuelve 0? Un número ganador sería el 0, pero esto no es conforme a lo que dice el enunciado.
De hecho, lo he comprobado y haciendo pruebas me ha salido por ejemplo Combinacion ganadora :31 40 37 39 2 0 donde vemos que aparece el cero, que no es correcto.
Otro aspecto que sería deseable es que los resultados de la combinación ganadora se mostraran en orden ascendente. Por ejemplo en lugar de Combinacion ganadora :12 9 42 16 43 11
que saliera Combinacion ganadora :9 11 12 16 42 43
Puede verse una solución correcta para este ejercicio en
https://aprenderaprogramar.com/foros/index.php?topic=5682.0Salu2