There is a built-in function DirectedGraph[ (*your undirected graph*) , "Random"] for this job:
myGraph = RandomGraph[{10, 13}, VertexLabels -> Table[v -> Style[v, 20], {v, 10}], ImagePadding -> 20, VertexSize -> Medium]

DirectedGraph[myGraph, "Random"]

(Note the layout may not be the same as myGraph.)
Edit:
As OP asked in a comment, if you only want a fraction of the total edges to be directed, then the best way might be to manipulate the adjacency matrix:
myAdj = AdjacencyMatrix[myGraph]

Suppose the edges we want to become directed are those between vertices $2\sim 4$, $1\sim 9$, $1\sim 10$, $5\sim 7$:
directEdgeSet = {{2, 4}, {1, 9}, {1, 10}, {5, 7}};
So a randomly constructed directed adjacency matrix would be:
myDirectAdj = ReplacePart[myAdj, Thread[RandomSample /@ directEdgeSet -> 0] ]

The corresponding graph is
AdjacencyGraph[myDirectAdj, DirectedEdges -> True, VertexLabels -> Table[v -> Style[v, 20], {v, 10}], ImagePadding -> 20, VertexSize -> Medium]
