Probability of one horse finishing ahead of another In a 5 horse race.  Lets say the probability of a horse to win the race are as follows:
Horse A : 25%
Horse B : 4%
Horse C : 35%
Horse D : 10%
Horse E : 26%
How would you determine the probability of Horse E finishing the race in front of Horse C ? i.e. (Horse E could come 4th and Horse C 5th).
Is there a method for determining the probability given the information available ?

Let $p_i$, $i=1,2,\dots,n$ denote the probabilities that each horse wins given in the problem statement.  A model that leads to simple calculations is to assume that some monotonically decreasing transformation $Z_i$ of the race times $T_i$ follow exponential distributions with rate parameters $\lambda_i=p_i$.  For instance, this would be consistent with the assumption that the race times follow Gumbel distribution with different locations which is perhaps not entirely unrealistic.
The probability that horse $i$ wins is then the probability that $Z_i$ is the smallest order statistic which indeed clearly is $\lambda_i/\sum_{j=1}^n \lambda_j=p_i$.
By the product rule and and the memoryless property of the exponential distribution the probability of a particular ranking $(\sigma(1),\sigma(2),\dots,\sigma(n))$ is
$$
\prod_{i=1}^n\frac{p_{\sigma(i)}}{\sum_{j=i}^n p_{\sigma(j)}}.
$$
The following R code verifies that the probabilities of all rankings computed this way sums to 1:
library(combinat)
#> 
#> Attaching package: 'combinat'
#> The following object is masked from 'package:utils':
#> 
#>     combn
revcumsum <- function(x) 
  rev(cumsum(rev(x)))
probranking <- function(sigma, p) {
  n <- length(p)
  prod(p[sigma]/revcumsum(p[sigma]))
}
p <- c(.25,.04,.35,.1,.26)
n <- length(p)
sum(unlist(permn(1:n, probranking, p = p)))
#> [1] 1

