Função Rand, números aleatórios

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
	int caixa[101] = {
	-50, -49, -48, -47, -46, -45, -44, -43, -42, -41,
	-40, -39, -38, -37, -36, -35, -34, -33, -32, -31,
	-30, -29, -28, -27, -26, -25, -24, -23, -22, -21,
	-20, -19, -18, -17, -16, -15, -14, -13, -12, -11,
	-10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
	0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
	10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
	20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
	30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
	40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
	};
	int vetA[101], i;
	srand(time(NULL));
	
	for(i = 0; i < 101; i++){
		vetA[i] = rand() % caixa[100];
		printf("Pos - %d\nNumero sorteado: %d\n", i, vetA[i]);
	}
}

Como eu poderia fazer para assim que ele recebesse um valor X o mesmo fosse removido de dentro do meu array? De forma que gerasse outro número que ainda não exista dentro espaço para não haver repetição.

Tenho este exemplo bem simples para você

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class VetorDeNumerosAleatorios {
	public static void main(String[] args) {
		Scanner te = new Scanner(System.in);

	System.out.print("Tamanho do vetor ");
	int tamanho = te.nextInt();

	List<Integer> valores = new ArrayList<>();
	Random random = new Random();
	
    //Adiciona os valores na lista
	int i = 0;
	while(valores.size() < tamanho) {
		System.out.println((i + 1) + "º valor");
		valores.add(te.nextInt());
		i++;
	}

	while (valores.size() > 0) {
		//Sorteia um número que pode ir de 0 até o tamanho máximo da lista
		int rand = random.nextInt(valores.size());
		//Em seguida pega da lista o valor que corresponde a posição sorteada
		System.out.print(valores.get(rand) + " ");
		//Feito isso retira da lista o valor da posição sorteada, para que não repita números
		valores.remove(rand);
	}
}

}

Este que mandei é em java, mas pode te ajudar

Eu tentei e construí algo assim, sinto que está no caminho certo porque para o primeiro valor ele compara se no resto do vetor ele repetir terei outro número gerado, mas para o segundo espaço e os demais não é feito o mesmo.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
	int vetA[101];
	int i = 0, j, pos, cont = 0;
	srand(time(NULL));
	
	for(i = 0; i < 15; i++){
		vetA[i] = rand() % 100 - 50;
		printf("%d - Num Sort: %d\n", i, vetA[i]);
	}
	do{
		//i = 0;
		for(j = 0; j < 15; j++){
		pos = vetA[i];
		printf("Pos: %d\n", pos);
		for(i = 15; i > 0; i--){
			if(pos == vetA[i]){
				printf("Entrei e contei\n");
				vetA[i] = rand() % 100 - 50;
				cont++;
			}
			else cont = 1;
		}
		//i++;
	}
	cont = 0;
	} while(cont > 0);
	printf("\n");
	for(i = 0; i < 15; i++){
		printf("%d - Num Sort: %d\n", i, vetA[i]);
	}
	printf("Pos: %d", pos);
}