How to create a SQL Server user that can restore databases to a database server?
Whilst you can use the dbcreator role, I wouldn't personally. It can drop existing databases, and alter them. 

In fact I tend to stay away from fixed server roles completely, in favour of designing my own server roles with appropriate rights.

I would do the following to grant the specific, granular right you need:

GRANT CREATE DATABASE TO [my_db_restore_user];


This should allow them to create databases only. Obviously it's worth thinking about the fact that this login then becomes the owner of that database and can subsequently drop it.