Yes, it would require a macro. The following shows how to randomly colour each letter individually - just don't expect quick results. Note too that some colours will look quite similar to others (some may even be the same).
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim i As Long
Randomize Timer
With ActiveDocument
For i = 1 To .Characters.Count
.Characters(i).Font.Color = Int(Rnd * 1048576)
Next
End With
Application.ScreenUpdating = True
End Sub