Minor variation on @Mr Wizards answer:
using {{l,r},{b,t}} syntax for Frame
just to be consistent with FrameTicks
using ColorFunction
to alter the colour ordering
gives
BarChart[Reverse@Range[5],
BarOrigin -> Left,
ColorFunction -> ColorData["Rainbow"],
Frame -> {{False, False}, {False, True}},
FrameTicks -> {{None, None}, {None, All}}]

BarChart[Reverse@Range[5],
BarOrigin -> Left,
ColorFunction -> ColorData[{"Rainbow", "Reverse"}],
Frame -> {{False, False}, {False, True}},
FrameTicks -> {{None, None}, {None, All}}]

Note that you could have also used ColorFunction -> Function[{x},ColorData["Rainbow"][1-x]]
.
Now for the legends. Unfortunately the legends are based on ChartStyle
so when you control the bar colours using ColorFunction
the ChartLegends
option doesn't work (in so far as no color swatches are produced).

This does not present a problem for this case -- which seems to be the specific example you are looking for:
BarChart[Reverse@Range[5],
BarOrigin -> Left,
ChartStyle -> "Rainbow",
ColorFunction -> ColorData["Rainbow"],
ChartLegends -> Map[ToString, Range[5]],
Frame -> {{False, False}, {False, True}},
FrameTicks -> {{None, None}, {None, All}}]

but for other variations this simple code doesn't produce ideal outcomes:
BarChart[Reverse@Range[5],
BarOrigin -> Left,
ChartStyle -> "Rainbow",
ColorFunction -> ColorData[{"Rainbow", "Reverse"}],
ChartLegends -> Map[ToString, Reverse@Range[5]],
Frame -> {{False, False}, {False, True}},
FrameTicks -> {{None, None}, {None, All}}]

It seems clear that the built in legend option should base its colour swatches on the actual colours used to render the bars (i.e. in this case controlled by ColorFunction
). That it does not seems like an oversight. Most of us here don't like (understatement) the built in legends and legend options and tend to roll our own.
Edit -- making a simple legend for your bar chart
To reproduce the sort of legend generated with ChartLegends
you can use MapIndexed
labels = Range[5];
Framed@Grid[
MapIndexed[{Graphics[{ColorData[{"Rainbow", "Reverse"}][
Rescale[First[#2], {1, Length[labels]}]], Rectangle[]},
AspectRatio -> 1, ImageSize -> 15], #1} &, labels],
Alignment -> {Center, Center}]

For the ColorData
gradient to work you need to scale the argument. Within the BarChart
ColorFunctionScaling
by default is True
so this happens automatically. But to get it to work here you have to do the scaling yourself -- which is what Rescale[First[#2], {1, Length[labels]}]
is doing. You can add styling to this legend to suit whatever font choice and size you like. If you want a border around the color swatch add EdgeForm
in the Graphics
list. To position the legend try using Labeled
.
Labeled[(*your bar chart*), (*your legend*), {{Right, Center}}]