Funcão que retorna um número aleatório

Olá, estou precisando muito de ajuda em C, estou fazendo um jogo de dados e estou enroscado numa parte, criei uma função que retornasse um número aleatório, acontece que ele me dá um número aleatório mas repete o número quando vou pedir e não sei porque, vou postar pra vocês dois pedaços do meu código para entenderem melhor.

    int main(void) {
	
	int acao, jogador, computador;
	
	printf("Deseja jogar? 1-Sim 2-Não: ");
	scanf("%d", &acao);//pegando resposta do jogador
	if(acao == 1) {}//abre o jogo
	else {exit(0);}//fecha o jogo
	int dado = random();
	lancamento_inicial(dado);
	printf("O numero sorteado foi: %d\nRodada n: %d\nO ponto do jogador é: %d\n", dado, rodada, dado);
	jogador = random();
	computador = random();
	printf("Numero sorteado jogador: %d\nNumero sorteado computador: %d\n", jogador, computador);
	lancamento_rodadas(jogador, computador, dado);

Bom, o problema está com esse random, quando eu chamo ele para me dar um número aleatório para o dado, ele funciona normal, o problema é quando vou pedir um numero aleatório para a variável jogador e computador, ele simplesmente está repetindo os valores que deu para variável dado. Aqui está a parte do código que está dando problema.

int random() {
	int lanca_dado;
	srand(time(NULL));
	lanca_dado = rand() % 12+1;
	return lanca_dado;
}

srand(time(NULL)); só execute isso uma vez, no início do programa. Tire da função random, coloque no começo do main.

1 curtida