You can use decision trees for both classification and regression. The output leaf nodes would either contain a value (classification) or a number (regression). For regression, the number comes from the data and is an average of all data points that ended up at that leaf node. For classification, the label is the label of the majority of data points that ended up at that leaf node.
A "random" decision tree is where you force randomness when picking which attribute to split on.
A "random forest" is just a bunch of "random" decision trees. It reduces overfitting by aggregating the results of multiple trees. A random forest model is an ensemble model. In order to have different trees trained, you need multiple datasets. That's where bagging or bootstrap aggregating comes into play. Bagging creates many datasets from one dataset through sampling. Bagging reduces variance of the model since the results of each model are averaged together. Boosting takes this a step further by em