Hallo steffi,
Ich wuerde nicht unbedingt einen Regex bemuehen, weil das was du beschreibst, nach einer Menge Arrays mit Synonymen aussieht und regulaere Audruecke nicht sonderlich performant sind. Nehmen wir mal an, dein Text kaeme aus einem Textfile, dann koenntest du mit file() in einer Schleife zeilenweise durchgehen.
In jeder Zeile koenntest du mit
if(strpos($zeile, ' ' . $syn_array[$i] . ' ') !== false) fuer jedes Element des Synonymarrays testen, ob das entsprechende Wort vorhanden ist und dann mit einem Randomzugriff auf das Array ein passendes Ersatzwort finden.
Gruß,
Dieter