English often takes words with the same meaning from different places, even though the basic meaning is the same.
The similar words to 'response' from other European languages are from the Latin root, "responsum" (to answer). For 'answer', you'll find parallels in the Germanic languages ('answer' meaning 'to swear against [something]').
As Jura points out, there's no real difference these days. However, for more formal speech the Latin-based "response" is preferred.