Nel tuo codice ci sono molti errori. Vediamo di elencarli in ordine di comparsa nel codice:
codice:
keyboardinput = new datainputstream(System.in);

// Correzione: DataInputStream va con le maiuscole

keyboardinput = new DataInputStream(System.in);

------------------------------------------------------

continua=true;   // questo è inutile

------------------------------------------------------
nomi[i]=keyboardinput.readln();

// correzione: readln() non esiste, esisterebbe readLine(),
// ma è deprecato: dovresti utilizzare un BufferedReader.

nomi[i] = keyboardinput.readLine();

------------------------------------------------------

if (nomi[i] = "X") continua=false;

// correzione: il confronto andrebbe con due simboli di =
// ma per gli oggetti si usa equals().

if ( nomi[i].equals("X") ) continua = false;

------------------------------------------------------

while (continua=true) ;

// correzione: il confronto si fa con due simboli di =
// anche se è preferibile evitarli quando si ha a che
// fare con variabili o espressioni booleane:

while (continua);  // al massimo: while (continua == true);

------------------------------------------------------

System.out.print("Il nome scelto dal computer è: ", nomi[randomname()]); 

// correzione: se dichiari un metodo con la maiuscola,
// lo devi richiamare con la maiuscola

System.out.print("Il nome scelto dal computer è: ", nomi[Randomname()]);

------------------------------------------------------

int Randomname() {
int s=random.nextInt();
if (s<0) s=0-s;
return s%n;
}

// correzione: i metodi vanno messi all'interno della classe e non all'esterno
Ciao.