I would generate a script on the database to be cloned, create a new db and execute the script on that DB.
In SQL EM, right click on the db to be cloned and select the 'Generate a script' option. Click the Show All button on the General tab then tick 'Script All Objects'. Go to the Options tab and tick all Security Scripting and Table Scripting Options.
Don't save the script, the cloned database will probably change and it's easy to generate another script.
If SQL server logins need to be exported to a new server, as in arthurgar situation, all SQL user, including users of other database will be scripted. You may not want all users in on the 2nd server, In addition, I found that the script will change users' default server to Master database, which is a problem when relying on users to connect to their default database.
AFAIK there are 2 stored proc (by MS) which do that for you. So you would have the exact clone of your database without data. Unfortunately, I used it last time long time ago, so cannot locate them at the moment.