The logic is both right and wrong, depending what kind of math you're using. But I'm a programmer, rather than a mathematician, so take what I say with a pinch of salt.
In programming at least, once you start working with different infinities, perhaps using libraries which allow you to handle the Aleph numbers of well ordered infinite sets, you also start playing with different kinds of zeroes, or rather, with different kinds of infinitesimals, which get all called "zero" in almost all branches of mathematics (algebra, calculus), in the same way as they treat all types of infinity as a single "inverse-zero", 1/0, the conceptual "upper bound" of the integers.
Once you start using math that is aware of relative infinities, then 0.999... is not one, it's just infinitesimally far from one. The fact that there are two ways of thinking about this, mathematically, is why there are so many arguments about it: as in all great arguments, both sides are right.
If you are using math which is aware of infinite sets, then 0.999... != 1, but 0.999... == 1 - (1/infinity).
If we randomly select an integer, the chance of there being few enough digits in it that we could express just its magnitude (even using shortcuts like powers of powers, terms like "googol" and "graham's number", or knuth's up-arrow notation) in a single lifetime is infinitesimal: there are only a finite number of magnitudes that we can express, and an infinite number of magnitudes.
Since "everyone knows" that dividing any integer by infinity gives zero, then there are apparently zero integers that we can express. But using math which is aware of different infinities, there aren't zero: just an infinitesimally small fraction of integers that we can express.
The chance of it being a number without a 3 in it, is infinitely larger than that. Because there is an infinite quantity of numbers with no 3s in, and only a finite list of numbers that could not be expressed by humans.
But it is still infinitesimally small, because for every number with no threes, there is an infinite number that does contain threes.
Picturing no-threes is hard. I find this easier to picture when considering the "countable" integers and the uncountable 'real' numbers between. It's clear to me that there are infinite integers; between each of those, there are infinite real numbers.
The chances of hitting an integer when panning through the numbers from 0.5 to 1.5, are 100%. The chances of randomly selecting an integer in a random pick form that range are infinitudinously small.