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);
}
}