Ti spiego la soluzione che adotterei io:
-Vettore contenente tutti i valori (da 1 a 30)
-Carico i numeri nella matrice con rand()%30+1..fatto questo azzero l'elemento all'interno del vettore contenente tutti i numeri...prima di caricarne un altro mi assicuro che sia presente all'interno del vettore contenente tutti i numeri e poi lo azzero e così via...ogni volta che termini una riga ricarichi il vettore e fai lo stesso per tutte le righe.
Quando hai finalmente caricato la matrice in modo giusto non ti resta che confrontare ogni riga.

Se segui queste linee guida ce la dovresti fare.Se hai dei dubbi chiedi pure