bpo-37319: Improve documentation, code and tests of randrange. (GH-19112)

diff --git a/Doc/library/random.rst b/Doc/library/random.rst
index 07ee011..9d85c2b 100644
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -141,8 +141,9 @@
       ``randrange(10)``.  In the future, this will raise a :exc:`TypeError`.
 
    .. deprecated:: 3.10
-      The exception raised for non-integral values such as ``range(10.5)``
-      will be changed from :exc:`ValueError` to :exc:`TypeError`.
+      The exception raised for non-integral values such as ``randrange(10.5)``
+      or ``randrange('10')`` will be changed from :exc:`ValueError` to
+      :exc:`TypeError`.
 
 .. function:: randint(a, b)
 
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index a6c3fbb..3026a1a 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -530,6 +530,10 @@
   as appropriate to help identify code which needs updating during
   this transition.
 
+* Non-integer arguments to :func:`random.randrange` are deprecated.
+  The :exc:`ValueError` is deprecated in favor of a :exc:`TypeError`.
+  (Contributed by Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)
+
 * The various ``load_module()`` methods of :mod:`importlib` have been
   documented as deprecated since Python 3.6, but will now also trigger
   a :exc:`DeprecationWarning`. Use