io userei il metodo FILE() per leggere il file di testo.
Ogni a capo, quindi il fine riga, viene usato per creare un nuovo rigo in un array.
Quando vai ad inserire una nuova news, non fai altro che creare una stringa, le cui varie sezioni sono separate da un carattere ben noto, tipo il PIPE (|).

Con ARRAY_RAND() vai ad estrapolare un rigo (quindi una news) dal tuo array in maniera casuale.
Non devi fare altro che fare l'explode di questa stringa per il simbolo del PIPE, o di qualsiasi altro tu abbia scelto, ed il gioco è fatto.

Per salvare una nuova news nel tuo file di testo, non devi fare altro che usare la combinazione di funzioni FOPEN() usando il metodo A+ e FWRITE().