Ah sim, pude rodar o codigo agora, foi muito util, alterei a rand x  para 7 e não deu mais falhas
 
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
    char nomepronto[2][50];
    
    char nome1[8][50] = {"DRAGAO","LADRAO","REI","POLVO","MONSTRO","LEAO","HOMEM"};
    
    char nome2[8][50] = {" ESMAGADOR DE"," COMEDOR DE"," VENDEDOR DE"," CHUPADOR DE", " ARRANCADOR DE", " MANIPULADOR DE"," FURTADOR DE"," ADORADOR DE"};
    
    char nome3[8][50] = {" CABEÇAS", " TRIPAS", " OSSOS", " SANGUE", " OLHOS", " CACHORRO", " COBRAS", " DEMONIOS"};
    
    int x;
    int y;
    int z;
    
    srand((unsigned)time(NULL));
    
    //SORTEIA NUMEROS DE 1-8 PRA CADA VARIAVEL
    for(int i=0; i<300; i++){
	
    x = rand() % 7;
    
    y = rand() % 8;
    
    z = rand() % 8;
    
    //CONCATENA POR ORDEM EM OUTRA VARIAVEL
    memset(&nomepronto[1], 0, sizeof(nomepronto[1]));
    strcat(nomepronto[1], nome1[x]);
    strcat(nomepronto[1], nome2[y]);
    strcat(nomepronto[1], nome3[z]);
    
    printf("\n\n%s %d - %d - %d ", nomepronto[1], x, y, z);
}
}