Generar números aleatorios con o sin repetición

Buenas!

En esta ocasión quiero crear un generador de números aleatorios con o sin repetición, ya he conseguido que genere cuantos quiera el usuario. Primero hay un formulario y te pide:

1. Número de inicio a generar
2. Número máximo a generar
3. Cantidad de números a generar

El problema es que quiero que el usuario pueda elegir entre que los números generados se puedan repetir o no, ya que de momento me genera números y a veces salen repetidos.

Tengo este código:

<?php
// Declaramos las variables enviadas por el formulario
$inicio = strip_tags($_POST[inicio]);
$final = strip_tags($_POST[final]);
$cantidad = strip_tags($_POST[cantidad]);
$i=1;

// Validamos que en el formulario se hayan enviado los dos números
if (!$inicio || !$final || !$cantidad) {
echo "<span style='color: red; font-size: 30px;'>Tienes que completar el formulario para generar tus números aleatorios!</span><br /><br />";
} else {

if ($final<$inicio) {
echo "<span style='color: red; font-size: 30px;'>El número límite no puede ser menor que el número inicial!</span><br /><br />";
} else {

if ($cantidad==0) {
echo "<span style='color: red; font-size: 30px;'>La cantidad de números a generar no puede ser 0!</span><br /><br />";
} else {

if ($cantidad<0) {
echo "<span style='color: red; font-size: 30px;'>La cantidad de números a generar no puede ser menor a 0!</span><br /><br />";
} else {

// Usamos la función mt_srand para que genere el número más rápido
mt_srand(time());
echo "<span style='font-size: 20px;'><u>Datos que has introducido para generar números aleatorios:</u><br /><br /><ul><li>Número de inicio: <span style='color: green;'><u>$inicio</u></span></li>
<li>Número de final: <span style='color: green;'><u>$final</u></span></li>
<li>Cantidad de números a generar: <span style='color: green;'><u>$cantidad</u></span></li></ul></span><br />
<span style='font-size: 20px;'><u>Los números aleatorios generados han sido:</u></span><br /><br /><br />";

while($i<=$cantidad){
$generado=mt_rand($inicio,$final);echo "$generado<br />";
$i++;
}
}
}
}
}
?>

Si alguien sabe cómo se hace por favor que me ayude :)

Saludos!
usa condicionales if antes y dentro del while if(opcion == 'repetir') ...... if(numero == numero) ....

Saludos!
Probaré con:

if ($generado == $generado) {
$generado = mt_rand($inicio,$final);
echo "$generado<br />";
}

Luego o mañana os cuento, gracias!