It is pretty easy to search the Internet for more detailed info.
But Run.dll and run32.dll are pretty easy to generalize, the difference being run.dll is focused on routines for the 16-bit code environments (DOS, Windows 3.1, WOW) and run32.dll focuses on the 32 bit routine environment. These run.dll and run32.dll setup an execution environment and means for scripters and programmers to directly invoke pre-compiled executables without using the normal desktop GUI (icons, links, etc). In fact you can invoke not only invoke .exe and .com files but many subunits like .dll files that would normally be difficult to simply doubleclick. These “run” routines allow coders to interactively select subroutines from within such compiled code and libraries. These “run” routines also allow the coders to supply what ever parameters are required – just as if writing subroutine source code to be compiled.
The shell32.dll is much more complex. It is central to both IE and the Windows File Explorer. It contains the standard Windows icons. In fact as a rough conceptual description, shell32.dll largely encompasses the whole normal desktop GUI either directly or by invoking other .dll. Thus you need to very leery of deleting shell32.dll or replacing it unless you are very computer literate and prepared to reinstall if you overreach your understanding. Nevertheless you will find many references to alternative desktops using customized shell32.dll to replace icons etc.
Example of using shell32.dll to change the desktop environment