A problem like this it helps to write out the first couple terms,
$$ \frac 1 2, \frac 1 3, \frac 2 3, \color{red}{\frac 1 4}, \boxed{\color{red}{\frac 2 4}}, \color{red}{\frac 3 4}, \frac 1 5, \frac 2 5, \frac 3 5, \frac 4 5, \color{red}{\frac 1 6}, \boxed{\color{red}{\frac 2 6}}, \boxed{\color{red}{\frac 3 6}}, \boxed{\color{red}{\frac 4 6}}, \color{red}{\frac 5 6}, \\ \frac 1 7, \frac 2 7, \frac 3 7, \frac 4 7, \frac 5 7, \frac 6 7, \color{red}{\frac 1 8}, \boxed{\color{red}{\frac 2 8}}, \color{red}{\frac 3 8}, \boxed{\color{red}{\frac 4 8}}, \color{red}{\frac 5 8}, \boxed{\color{red}{\frac 6 8}}, \color{red}{\frac 7 8}, \dots $$
First off, notice that we are counting the $n^{th}$-denominator $n-1$ times, so your intuition about triangle numbers is correct. The total number of possible fractions up to $n$ is $\frac{n(n+1)}{2}$.
We want to look for the probability that two numbers share no factors (are coprime), which is $\frac{6}{\pi^2} \approx 61\%$.
For numerical confirmation I wrote some c++ code to analyze the number of proper fractions that are reducible. Below is the output and the code is at the bottom,
1 digits - 20.0000 % - 9/45 are reducible
2 digits - 37.3333 % - 1848/4950 are reducible
3 digits - 38.9810 % - 194710/499500 are reducible
4 digits - 39.1870 % - 19591516/49995000 are reducible
5 digits - 39.2052 % - 1960239248/4999950000 are reducible
Here we see the number of reducible fractions slowly approaches $40\%$.
std::tuple<ull, ull> percent_reducible_with_prime_search(unsigned digs)
{
ull reducible_sum = 0;
ull lim = pow(10, digs);
ull total_reducible = lim * (lim-1) / 2.0;
for(ull d=2; d<lim; d++) {
if(is_prime(d)) continue;
for(ull n=1; n<d; n++) {
if(gcd(n,d) != 1) reducible_sum += 1;
}
}
return std::make_tuple(reducible_sum, total_reducible);
}