Let $\alpha=\angle(a,b)$ (the angle between the sides $a$ and $b$) and $\beta=\angle(a,d)$. For any given angle $\alpha$ you can compute exactly one angle $\beta$ (using basic geometry), so that the side $c$ has the desirded length and the quadrilateral is convex. So, essentially, you have a single parameter to determin: $\alpha$. Now use your favorite optimizations scheme to find $\alpha$ in such a way, that the diagonals are of equal length, e.g.:
These procedures are searching for a zero of a function in a single variable. So for example try to find the zero of $f(\alpha):=|d_1(\alpha)-d_2(\alpha)|$, which is the difference in the length of the diagonals. If this functions is zero, the diagonals are of the same length.