As you know when you run a 16 bit program such as Windows 3.1 games on Windows Vista,7 or 8, it does not display the icon.
This is because support for 16 bit icon display has been removed from Windows Vista onwards. So you have to choose one of the icons in the "Shell32.dill" folder.
But there is an icon extractor that can extract and display 16 bit icons from any software.
BeCyIcon Grabber which I found here on C Net:
http://download.cnet.com/BeCyIconGrabber/3000-2192_4-10768921.html
You simply click on your desktop shortcut and the icon finder extracts the icon which you then save in a folder of your choice. Then when you change the icon point it to the folder you saved it in such as My Pictures or My Documents.
Here on my Windows 8 you can that my Windows 3.1 software has all of it's original icons.
Note also that to run 16 bit software you must have the 32 bit version of Windows since they won't run on 64 bit. This also works on Windows 10 32 bit.