SeedRandom[1]
al = BezierFunction[RandomReal[{-1, 1}, {14, 2}]];
be = BezierFunction[RandomReal[{-1, 1}, {20, 2}]];
You can temporarily redefine Line as Arrow using Block and use ParametricPlot:
Block[{Line = Arrow},
ParametricPlot[{al[t], be[t]}, {t, 0, 1}, PlotRange -> All, Frame -> True, Axes -> False]]

Alternatively, you can use Graphics
Graphics[{Thick,
MapThread[{#, Arrow[#2 /@ Subdivide[200]]} &,
{ColorData[97] /@ {1, 2}, {al, be}}]},
Frame -> True]
same picture
You can specify the size and position of the arrow heads using the directive Arrowheads[{{size, pos}}]:
Block[{Line = Arrow},
ParametricPlot[{al[t], be[t]}, {t, 0, 1},
PlotStyle -> Arrowheads[{{.05, .75}}], PlotRange -> All,
Frame -> True, Axes -> False]]

Alternatively, with Graphics:
Graphics[{Arrowheads[{{.05, .75}}], Thick,
MapThread[{#, Arrow[#2 /@ Subdivide[200]]} &, {ColorData[97] /@ {1, 2}, {al, be}}]},
Frame -> True]
same picture
ParametricPlot[{Sin[u], Sin[2 u]}, {u, 0, 2 Pi}] /. Line[x__] :> Arrow[x]– ktm Mar 05 '20 at 18:30ParametricPlot[{Sin[u], Sin[2 u]}, {u, 0, 2 Pi}] /. Line[x__] :> Sequence[Arrowheads[.5], Arrow[x]](adjust size of arrowhead as needed). This might not be robust in all situations. – ktm Mar 05 '20 at 18:55