Generating a random directed graph
Here are my suggestions:

Nodes, Edges: most of the time the function's parameters don't start with big letter. nodes and edges are more preferable.

Also consider to restraint the possible range of these variables. uint or even smaller like ushort might be a better fit for your use case.


throw new Exception: It is good that you do preliminary checks. Usually the preferred Exception type is ArgumentException (1) to indicate that you have a problem with the calling parameters.

adjacencyMatrix: You don't need to zero all of the entries inside this matrix because by default their value will be zero. (int is a value type with a default value 0).

If you wish to clean the array, because you have received that for example via a parameter then you can use the built-in Array.Clear (1):
Array.Clear(adjacencyMatrix, 0, adjacencyMatrix.Length);


random.Next(0, i): Alternative: random.Next() % i 

random.Next(1, 10): Alternative: new Random().Next() * (10 - 1) + 1 (1) 

placedEdges++: instead of increasing it every time you could initialize it with the proper value: int placedEdges = Nodes -1;

fromVertex and targetVertex:

fromVertex + toVertex
OR sourceVertex and targetVertex would

give more convenient naming.