Does PolyMorphism work in Blueprints?

Does it work or do I need to use C++? Just wondering.

You can make blueprinted actors (and other objects) implement Blueprint interfaces.
You can then treat each implementer of the interface the same.
So, yes, Blueprints support polymorphism.

Does BluePrints make random terrain?

Does a hammer build a house?

Depends Do you have wood and a foundation, do you have nails? Is the wood cut? Do you have a plan? Or in more terms, a blueprint.

Blueprints are wrappers around C++ Code.
They support polymorphism, but with some restrictions.
For example you can only inherit of one class only, not multiple classes like in C++.
If you want to have multiple inheritance you need to use blueprint interfaces, similar to interfaces in C++.