При данной постановке оптимально было бы выбрать все значения из базы в список (один раз, без сортировок), а затем перемешать его и при каждом запросе выдавать следующее значение по списку.
# считать все свои тексты в список
data = [row[0] for row in cur.execute("SELECT name FROM `test`")]
random.shuffle(data) # теперь данные в рандомном порядке, можно выбирать последовательно
Альтернативный вариант (допустим, этих текстовых данных в таблице очень много и может быть не эффективно тянуть и хранить их все сразу), считать список номеров, также отсортировать и при каждом запросе пользователя делать запрос к базе уже по номеру.
# считать только уникальные номера этих текстов в список
numbers = [row[0] for row in cur.execute("SELECT number FROM `test`")]
random.shuffle(numbers) # теперь данные в рандомном порядке, можно выбирать последовательно
# при запросе пользователя берем следующий номер из нашего рандомного списка
number = ...
# и по нему уже достаем сам текст из базы
text = cur.execute("SELECT name FROM `test` where number = ?", (number, )).fetchone()[0]