Eu estava com a mesma dúvida. Ontem aconteceu a festinha dos dias das mães na escola em que eu trabalho e foi feito um sorteio de brindes. O complicado foi ter que ditar números que ainda não haviam sido chamados. Daí eu tive a ideia de criar um algoritmo que gerasse números aleatórios não repetitivos e deu nisso:
algoritmo "Números Aleatórios Não Repetidos"
// Função : Gerar números aleatórios de 1 até 100 sem repetição.
// Autor : Junior Frota
// Data : 11/05/2018
// Seção de Declarações
var
n,m, i, j, k : inteiro
a : vetor[0..99] de inteiro
c : caractere
inicio
// Seção de Comandos
para i de 0 ate 99 faca
repita
m <- randi(100)
n <- m + 1
para j de 0 ate i faca
se (a[j] = n) então
k <- k + 1
fimse
fimpara
se (k = 0) então
a <- n
escreval(a)
interrompa
senao
k <- 0
fimse
fimrepita
k <- 0
fimpara
fimalgoritmo
Dependendo da quantidade de números que precisa ser gerado, basta modificar a dimensão do vetor (a : vetor[0..99] de inteiro), o limite máximo de iteração do comando para (para i de 0 ate 99 faca) e o range da função randi, colocando sempre um a mais do que a dimensão do vetor (m <- randi(100)).
O m recebe o valor aleatório, mas como tem a possibilidade de gerar o número zero, e isso não satisfaz a função do algoritmo, então n recebe m mais um. Isso faz gerar números de 1 até 100, neste caso.
Espero que tenha ajudado, uma vez que sua postagem é de 2014.