вы, вероятно, храните эти сообщения где-то, например, gotMessages. Скажем, ReceiveMessages - это карта с ключом отправителя и значениями, тогда вы можете присвоить этому отправителю случайный цвет при первой отправке сообщения, сохранить его как значение для этого ключа и использовать тот же цвет после.
CircleAvatar( color: (receivedMessages[sender] == null) ? randomColor : receivedMessages[sender][color], child: Message(), ... other attributes )