Acabo de hacer esto mismo pero en Python y si que me salio, de ahí a pasarlo a Java es solo un paso 
Te explico un poco como funciona el Script:
Lo que hace el ciclo for, es recorrer letra por letra la cadena lista.
Cuando el ciclo lee una letra, primero se fija si es igual a un espacio vació, si es así, la variable contador, aumentara en 1. La variable contador sirve para verificar por que palabra va el ciclo.
Luego se hace otra comprobación, que se fija si contador es igual al numerorandom, osea la palabra que se tiene que obtener de la lista, si lo es, cada letra que se lea del ciclo for, sera agregada a la variable palabraActual.
No pretendo que lo hagas tal cual, pero para que te sirva de orientación xD
Salu2

Código (python) [Seleccionar]
import random
lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
numeroRandom = random.randint(1, 20);
palabraActual = "";
contador = 1;
pararCiclo = False;
for letra in lista:
if(letra == " "):
contador += 1;
if(pararCiclo == True):
break;
if(contador == numeroRandom):
palabraActual += letra;
pararCiclo = True;
print(str(numeroRandom)+":"+palabraActual);
Te explico un poco como funciona el Script:
Lo que hace el ciclo for, es recorrer letra por letra la cadena lista.
Cuando el ciclo lee una letra, primero se fija si es igual a un espacio vació, si es así, la variable contador, aumentara en 1. La variable contador sirve para verificar por que palabra va el ciclo.
Luego se hace otra comprobación, que se fija si contador es igual al numerorandom, osea la palabra que se tiene que obtener de la lista, si lo es, cada letra que se lea del ciclo for, sera agregada a la variable palabraActual.
No pretendo que lo hagas tal cual, pero para que te sirva de orientación xD
Salu2