виж какво спретнах набързо:
<?php
session_start();
$lq = array('duma1','duma2','duma3','duma4','duma5','duma6','duma7','duma8','duma9');
if($_SESSION['duma'] != ''){
if(in_array($_SESSION['duma'],$lq)){
$unset = array_search($_SESSION['duma'],$lq);
unset($lq[$unset]);
}
}
$br = array_rand($lq);
$z = $lq[$br];
$_SESSION['duma'] = $z;
echo $z;
?>
Накратко имаш начален масив $lq в който са ти думите.
пропускам ифовете по надолу ще се върна.
$br съдържа произволно избран индекс от масива.
$z ще съдържа думата която отговаря на този индекс.
Слагаме думата в сесия и после принтваме думата.
Сега ифовете:
отначало проверяваме дали има сесия, 2рия иф проверява дали избраната дума я има в първоначалния масив , след това $unset съдържа индекса който съответства на тази дума и с unset я премахваме от масива за да няма вероятност да се падне последователно.
И вече масива е същия само , че без тази дума което е била предният път т.е. точно това което ти е целта

Надявам се ще се оправиш с началният масив (ако го взимаш от някъде)
п.п. ако думите ти са във файл (всяка дума на нов ред) използвай функцията file() тя връща масив т.е. тооочно това което ти трябва

хух...