Naturally, you are able to choose exactly what is randomized in your particular ROM. If randomizing things like Pokemon types is just too confusing or unenjoyable, the randomization can be easily tailored to your particular needs. Why use this randomizer? It's universal. Every main series Pokemon game released in the US is supported, from Red to Black2 and everything in between.
You can easily create the same random game repeatedly. An important part of Pokemon is competition, and racing your friends to complete a particular random Pokemon game can be a great experience. By sending a couple of pieces of text or a small file you can easily make sure everyone has the exact same game to play with, without having to send around the entire ROM every time. It's thorough. A decent amount of attention to detail has been invested in this randomizer and so pesky parts of the original games are unlikely to show through.
For example, a trainer's random Pokemon will not suddenly use moves they were predefined to use in the original game - they will fully obey the (randomized or not) movesets they have been provided with. There are small things it does to give you a better experience. When you randomize your ROM, you can choose to apply a few minor tweaks which make the experience more enjoyable in the environment you're likely to be playing the randomized game in. These include changing evolutions which require trading to no longer require trading (so you can obtain powerful Pokemon) and giving you the National Dex at the start of the game to allow you to look up Pokemon that were not intended to be available at the start of the original game.
Screenshots The Program Generation 1 (R/B/Y) Generation 2 (G/S/C) Generation 3 (R/S/E/FR/LG) Generation 4 (D/P/Pt/HG/SS) Generation 5 (B/W/B2/W2).